Kubernetes 1.24 移除 dockershim 后,想继续用 Docker Engine 作为节点运行时,需要借助 Mirantis 维护的开源 CRI 适配器 cri-dockerd。这篇教程针对 Ubuntu 给出完整配置步骤,并提醒哪些场景才值得这么做。
对多数人来说,默认用 containerd 更省事。只有当你确实依赖 Docker 套接字上的现有自动化、希望 docker build 与 kubelet 共享同一镜像存储,或受制于仍假设 Docker Engine 为运行时的供应商产品时,才考虑 cri-dockerd。
安装分三步:先通过 Docker 官方仓库装好 Docker Engine,并把 cgroup 驱动设为 systemd(Ubuntu cgroup v2 下必须与 kubelet 一致,否则节点无法保持 Ready);再下载 cri-dockerd 0.3.15 的 deb 包并启用 cri-docker.socket;最后在 kubeadm init 和 join 时通过 --cri-socket 指向 unix:///var/run/cri-dockerd.sock,其余节点配置与 containerd 方案相同。
有个容易踩的坑:kubelet 拉取的镜像和你手动 docker pull 的镜像存在同一存储里,docker ps 会看到大量 Kubernetes 管理的容器。集群容器请用 crictl 查看,手动管理的镜像才用 docker,避免误删 kubelet 拥有的容器。节点 NotReady 或拉取失败,多半是 cgroup 驱动不匹配或套接字路径问题。
GitHub
#GitHub #开源 #Kubernetes #Docker #cridockerd #Ubuntu #CRI #Mirantis
@GitHubTrendingHub
