【问题标题】:If docker-ce and containerd are installed on Ubuntu 20.04, what CRI does K8s use?如果 Ubuntu 20.04 上安装了 docker-ce 和 containerd,K8s 使用什么 CRI?
【发布时间】:2021-06-05 07:26:14
【问题描述】:

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

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

【问题讨论】:

  • 使用泊坞窗。请注意文档说“如果您不指定运行时”。您可以通过在 kubeadm init 上设置 --cri-socket 参数来指定运行时(请参阅here)。
  • 嗯,好的,谢谢,我假设在 1.24 中删除 dockershim 后,它将默认为 containerd,而不是用户在“--cri-socket”中明确声明 containerd
  • 它回答了你的问题吗?
  • 是的,我不确定如何将其标记为答案,因为它只是一个评论
  • 弃用对某些人来说意味着可怕的事情。在这种情况下,这意味着 k8s 维护者在 1.20 中宣布,他们最终将在稍后停止维护 Mirantis 已经宣布他们将接管维护的东西。弃用公告并不意味着从 k8s 维护中删除。 mirantis.com/blog/…

标签: linux docker kubernetes containers containerd


【解决方案1】:

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

正如@mmking 已经提到的:如果您不指定运行时,则会选择 Docker。如果您想像Initializing your control-plane node docs 中所述手动更改它,可以使用--cri-socket 旁边的kubeadm init

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

【讨论】:

    猜你喜欢
    • 2020-08-07
    • 2021-04-17
    • 2021-08-06
    • 2021-07-03
    • 2021-08-23
    • 1970-01-01
    • 2021-03-22
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多