前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes | 从Docker迁移到Containerd

Kubernetes | 从Docker迁移到Containerd

作者头像
用户5166556
发布2023-03-18 13:51:10
1.1K0
发布2023-03-18 13:51:10
举报
文章被收录于专栏:让技术和时代并行

Kubernetes在1.20版本之后不再将Docker作为容器运行时使用。不要惊慌😱Docker容器仍然支持,但是dockershim/Docker Kubernetes和containerd之间的层已经弃用,将从1.22+版本中移除。因此,如果你正在运行docker,你需要更改为支持的容器运行时接口(CRI)。containerd是一个很好的选择,如果您正在运行Docker,它已经在Kubernetes节点上运行了。

一个明显的优势是开销更少,没有Docker-shim和Docker翻译层,如图所示。

从docker shim改为containerd CRI

如何迁移

首先,我们检查当前运行的容器是什么。我们使用kubectl get node -o来实现这一点。正如我们所看到的,我们将Docker作为运行时运行。

现在,我们检查containerd cli /usr/bin/ctr是否存在,名称空间moby是否存在,命令:/usr/bin/ctr namespace list moby是docker的命名空间。

我们可以在这个命名空间中列出正在运行的容器

如果一切正常,我们可以更改cri,每次更改一个节点,首先是工作节点,然后是控制节点。如果只有一个控制节点,您将失去对集群的访问权,这将是暂时的,它应该自己恢复。

驱逐节点

我们需要封锁并释放节点,以便重新调度工作负载。

停止服务

删除docker(可选)

我们删除了Docker,这是不必要的,但会让事情更清楚,以后更不容易出错,我们会节省一些磁盘空间…

Containerd配置

禁用/etc/containerd/config中的disabled_plugins行。这样cri接口就加载了

如果containerd没有配置文件,您可以生成一个新的默认文件。

重启containerd

systemctl restart containerd

更改runtime

编辑/var/lib/kubelet/kubeadm-flags.env文件;并将containerd运行时添加到标记。--container-runtime=remote--container-runtimeendpoint=unix:///run/containerd/containerd.sock所以kubeadm-flags文件看起来应该是这样的。

/var/lib/kubelet/kubeadm-flags.env

启动kubelet

在更改运行时之后,我们可以启动kubelet服务

systemctl start kubelet

核对

现在,当我们运行kubectl时,kubectl get nodes -o wide,我们看到containerd是我们刚刚更改的节点的运行时containerd。

我们刚改变的节点仍然被封锁。所以我们现在可以解除封锁了。

如果现在检查节点上的名称空间,会看到一个新的名称空间k8s.io。moby名称空间现在是空的,在这个名称空间中没有运行容器,所有容器现在都在运行k8.io命名空间。

view new k8s.io containerd namespace

我们已经成功地更改了cri,现在我们可以移动到下一个节点并重复所有操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生技术爱好者社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何迁移
  • 驱逐节点
  • 停止服务
  • 删除docker(可选)
  • Containerd配置
  • 重启containerd
  • 更改runtime
  • 启动kubelet
  • 核对
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档