将节点容器运行时从Docker迁移到Containerd
Kubernetes社区已经在v1.24版本中移除Dockershim,为保持与社区技术路线同步,并提升集群运行的稳定性与资源效率,强烈建议您将节点容器运行时从Docker逐步迁移至官方推荐的Containerd,以确保未来与Kubernetes版本的兼容性和持续支持。
Containerd是Kubernetes支持的行业标准容器运行时,与Docker相比,Containerd资源占用更低、容器启动更快、兼具更高稳定性与安全性。
前提条件
- 已创建至少一个集群,并且该集群支持Containerd节点,详情请参见节点操作系统与容器运行时对应关系。
- 您的集群中存在容器运行时为Docker的节点或节点池。
注意事项
- 节点容器运行时的迁移会重建节点上运行的业务Pod,理论上可能会导致业务短暂中断,因此强烈建议您迁移的业务保证多实例高可用部署,并且建议先在测试环境试验迁移的影响,然后在业务低峰期进行生产环境迁移,以最大限度避免可能存在的风险。
- Containerd不具备镜像构建功能,完成迁移后,您无法在Containerd节点上使用Docker Build功能构建镜像,但拉取镜像不受影响。Docker和Containerd其他差异请参考容器运行时说明。
- 若您在原有Docker节点或节点池上部署的负载设置了对应的节点亲和性策略,则需要将负载的节点亲和性策略配置为新的Containerd节点或节点池。这种情况下,为尽可能避免业务中断,您可以采用滚动升级的方式,在不删除现有节点亲和性配置的前提下,为工作负载添加对新Containerd节点或节点池的亲和性配置,等滚动升级全部完成,经过充分测试确认没有问题后,再安全地删除对旧Docker节点的亲和性配置。
默认节点池迁移
您可以将原Docker节点直接重置为Containerd节点。
如果节点资源使用率较高,直接将已有Docker节点重置可能导致该节点上的Pod迁移后重建失败,您可以按需新增一定数量的节点进行避免。
- 登录CCE控制台,单击集群名称进入集群。
- 在集群控制台左侧导航栏中选择“节点管理”,切换至“节点”页签。
- 筛选集群中的Docker节点,选择一个Docker节点,在“更多”功能中选择“禁止调度”。
- 在“更多”功能中选择“节点排水”。

- 在确认界面开启“强制排水”,然后单击“确定”进行节点排水。

- 排水完成后,在节点列表中选择该节点,单击“更多 > 重置节点”。
- 在容器运行时中选择Containerd,其余参数可根据需要进行调整,也可以和创建时保持一致。

- 单击“下一步:规格确认”,确认已阅读并知晓华为云的云容器引擎服务声明。
- 单击“提交”。当节点状态显示为安装中时,即表示正在重置节点。
待节点状态显示为运行中时,您即可检查节点容器运行时是否切换成功,页面中可以看到节点运行时版本已经切换为Containerd,并且登录节点可以执行crictl等Containerd相关命令查看节点上运行的容器信息。
- 重复以上步骤,直至所有Docker节点均被替换为Containerd节点。


