1. 星速云首页
  2. 阿里云文档

阿里云弹性容器实例ECI已有 Kubernetes 应用的迁移

简介

本文介绍如何将已有的Kubernetes应用迁移到基于ECI的Serverless Kubernetes或者虚拟节点扩展。希望能帮助您了解在迁移到ECI中需要进行的适配和改造,并帮助您解决部分在迁移应用中可能会遇到的问题。

假设

本文假设您对Kubernetes的基本概念已经有所了解,或者已经在私有云或者公有云中使用过基于Kubernetes的容器编排服务。

迁移前的准备工作

  • 您可以通过Serverless Kubernetes简介虚拟节点扩展 了解ECI与Kubernetes对接的基本原理。

  • 您无需提前创建ECI实例,只需要提前创建好Serverless Kubernetes集群,或者在已有的Kubernetes托管版中部署好Virtual Node Addon。

如何管理Kubernetes及ECI运行情况

  • 您可以通过容器服务控制台来操作Serverless Kubernetes集群和Kubernetes托管版集群。
  • 您可以通过阿里云提供的CloudShell来管理Kubernetes集群。
  • 您可以通过kubectl客户端在本地计算机来访问远端的Kubernetes集群。详情请参考这里

如何查看已经创建的ECI实例

  • 进入弹性容器实例控制台,在左上角选择相应的可用区,您可以看到已经创建的ECI实例。如果您看到的是空白页面,请申请弹性容器实例页面的访问权限。
  • 进入容器服务控制台,从左侧导航栏中点击‘应用’>‘容器组’,选择对应的集群和namespace,可以查看到已有的pod,被调度到virtual-kubelet节点上的即是ECI实例,点击实例的‘详情’可以查看详细信息。

eci-pod

应用迁移的限制

virtual-kubelet是作为一个虚拟节点对接Kubernetes,因此ECI实例并不会跑在一个集中式的“真实”节点上,而是会被打散分布在整个阿里云的资源池中。

考虑到公有云的安全性和虚拟节点本身带来的限制,ECI目前还不支持Host相关功能以及DaemonSet。具体如下:

不支持的功能 具体内容 备选方案
HostPath Mount本地宿主机文件到容器中 使用emptyDir,或者NAS存储
HostNetwork 将宿主机端口映射到容器中 使用type=LoadBalancer的负载均衡
DaemonSet 在容器所在宿主机上部署static pod 通过sidecar形式在pod中部署多个镜像
Privileged权限 容器拥有privileged权限 使用secretContext为pod添加Capability
type=NodePort的Service 通过宿主机端口映射到容器端口 使用type=LoadBalancer的负载均衡

应用迁移的说明

  • Kubernetes集群和Serverless Kubernetes共享容器镜像仓库,因此可以将容器镜像先上传到容器镜像仓库中。为了加速镜像的拉取,建议使用专有网络的镜像地址(registry-vpc.xxx)。
  • Serverless Kubernetes和虚拟节点扩展 支持 Deployment, ReplicaSet,Job,Cronjob,StatefulSet等常见controller,理论上可以直接运行。
  • Serverless Kubernetes和虚拟节点扩展 利用 PrivateZone 实现 服务发现,因此建议在创建集群时默认勾选 PrivateZone支持。
  • Serverless Kubernetes和虚拟节点扩展 支持 type=LoadBalancer 的Service。您可以将Service修改为type=LoadBalancer,详情请参考这里
  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. labels:
  5. app: nginx
  6. name: nginx
  7. namespace: default
  8. spec:
  9. externalTrafficPolicy: Cluster
  10. ports:
  11. - port: 80
  12. protocol: TCP
  13. targetPort: 80
  14. selector:
  15. app: nginx
  16. sessionAffinity: None
  17. type: LoadBalancer

注明:本文为星速云原创版权所有,禁止转载,一经发现将追究版权责任!

发表评论

登录后才能评论
问答社区 QQ客服
微信客服
微信客服
分享本页
返回顶部