k8s 1.23/1.24 从 docker迁移到 containerd on ubuntu

由于 k8s 1.24之后的版本不再支持docker,因此需要对其进行迁移。这里记录下迁移的一些步骤:

  1. 在master上修改node的信息
kubectl edit no <node-name>

这一命令会打开一个文本编辑器,供你在其中编辑 Node 对象。 要选择不同的文本编辑器,你可以设置 KUBE_EDITOR 环境变量。

  • 更改 kubeadm.alpha.kubernetes.io/cri-socket 值,将其从 /var/run/dockershim.sock 改为你所选择的 CRI 套接字路径 (例如:unix:///run/containerd/containerd.sock)。
  • 注意新的 CRI 套接字路径必须带有 unix:// 前缀。

  • 保存文本编辑器中所作的修改,这会更新 Node 对象。

  1. 停掉对应节点的服务
systemctl stop kubelet
systemctl disable docker.service --now
systemctl disable docker.socket --now

  1. 安装 Containerd
apt-get install containerd.io
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd
  1. 配置 kubelet 使用 containerd 作为其容器运行时

    • 编辑文件 /var/lib/kubelet/kubeadm-flags.env,将 containerd 运行时添加到标志中;--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock
    • 编辑 /etc/default/kubelet如果里面有cgroup相关的配置,将其删掉。
  2. 重启 kubelet

systemctl daemon-reload
systemctl restart containerd
systemctl restart kubelet
  1. 在master上面查看信息。如果报错,可以用systemctl status kubelet查看错误并排查
kubectl get node -o wide
打赏
Bookmark the permalink.
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论