将节点容器引擎从Docker迁移到Containerd
Kubernetes在1.24版本中移除了Dockershim,并从此不再默认支持Docker容器引擎。CCE计划未来移除对Docker容器引擎的支持,建议您将节点容器引擎从Docker迁移至Containerd。
前提条件
- 已创建至少一个集群,并且该集群支持Containerd节点,详情请参见节点操作系统与容器引擎对应关系。
- 您的集群中存在容器引擎为Docker的节点或节点池。
注意事项
- 理论上节点容器运行时的迁移会导致业务短暂中断,因此强烈建议您迁移的业务保证多实例高可用部署,并且建议先在测试环境试验迁移的影响,以最大限度避免可能存在的风险。
- Containerd不具备镜像构建功能,请勿在Containerd节点上使用Docker Build功能构建镜像。Docker和Containerd其他差异请参考容器引擎说明。
默认节点池中的节点迁移步骤
- 登录CCE控制台,单击集群名称进入集群。
- 在集群控制台左侧导航栏中选择“节点管理”,切换至“节点”页签。
- 在节点列表中选择一个或多个需要重置的节点,单击“更多 > 重置节点”。
- 在容器引擎中选择Containerd,其余参数可根据需要进行调整,也可以和创建时保持一致。
- 当节点状态显示为安装中时,即表示正在重置节点。
待节点状态显示为运行中时,您即可检查节点容器运行时是否切换成功,页面中可以看到节点运行时版本已经切换为Containerd,并且登录节点可以执行crictl等Containerd相关命令查看节点上运行的容器信息。
自定义节点池迁移步骤
您可使用节点池复制功能,复制原有的Docker节点池,并将新节点池的容器引擎选择为Containerd,其余配置和原Docker节点池保持一致。
- 登录CCE控制台,单击集群名称进入集群。
- 在左侧选择“节点管理”,切换至“节点池”页签,并在需要复制的Docker节点池“操作”栏中,单击“更多 > 复制”。
- 在节点池配置页面中,选择容器引擎为Containerd,其余参数可根据需要进行调整,并完成节点池创建。
- 将创建完的Containerd节点池扩容至原Docker节点池的数量,并逐个删除Docker节点池中的节点。
推荐使用滚动的方式迁移,即扩容部分Containerd节点,再删除部分Docker节点,直至新的Containerd节点池中节点数量和原Docker节点池中节点数量一致。
若您在原有Docker节点或节点池上部署的负载设置了对应的节点亲和性,则需要将负载的节点亲和性策略配置为的新Containerd节点或节点池。
- 迁移完成后,删除原有Docker节点池。