首页 > 解决方案 > 如果在 Ubuntu 20.04 上安装了 docker-ce 和 containerd,K8s 使用什么 CRI?

问题描述

在此处找到的用于安装 kubeadm 的官方 Kubernetes 文档中,它声明“如果同时检测到 Docker 和 containerd,则 Docker 优先”,如果在我的 Ubuntu 20.04 主机上我按照 docker install 文档docker-ce docker-ce-cli containerd.io的建议安装了,K8s 是否直接与containerd 组件还是它仍然使用(即将在树 K8s 中弃用)dockershim 层?

如果是后者,我如何让 K8s 直接与 containerd 对话,同时主机上仍然可以使用 docker cli 工具集?

标签: linuxdockerkubernetescontainerscontainerd

解决方案


这是一个社区 wiki 答案,基于评论中的解决方案并发布以提高可见性。随意扩展它。

正如@mmking 已经提到的:如果您不指定运行时,则将选择 Docker。如果要手动更改它,可以使用--cri-socket旁边的 ,如初始化控制平面节点文档中所述:kubeadm init

(可选)从 1.14 版本开始,kubeadm 尝试通过使用众所周知的域套接字路径列表来检测 Linux 上的容器运行时。要使用不同的容器运行时,或者如果在配置节点上安装了多个容器,请指定--cri-socketkubeadm init 的参数。


推荐阅读