【问题标题】:Can Docker Desktop version work with Kubernetes?Docker 桌面版可以与 Kubernetes 一起使用吗?
【发布时间】:2019-10-14 16:34:34
【问题描述】:

据我了解,Kubernetes kubelet 与 CRI(容器运行时接口)对话以运行容器。因此,Kubernetes 中使用的每个容器运行时都应该遵循 CRI 实现 (https://www.ianlewis.org/en/container-runtimes-part-4-kubernetes-container-run)。 Docker 桌面版既不运行 dockerd 也不运行 containerd。它为高级虚拟化运行 HyperKit。它是否符合 CRI 并可以与 Kubernetes 一起使用?

【问题讨论】:

    标签: kubernetes docker-desktop container-runtime-interface


    【解决方案1】:

    Hyperkit 不是 CRI,它是虚拟机管理程序,例如 VirtualBox,用于Docker Desktop for Mac。来自Official docker documentation

    Docker Desktop for Mac 使用 HyperKit 而不是 Virtual Box。超级套件 是一个轻量级的 macOS 虚拟化解决方案,构建在 macOS 10.10 Yosemite 及更高版本中的 Hypervisor.framework。

    如果您查看此blog,它很好地解释了管理程序和 CRI 之间的关系。

    如上图所示,Docker Container Engine(或 containerd)位于 Linux 内核之上,因此与 Hypervisor 无关。这基本上是虚拟机和容器之间的主要区别。如果你有 Linux 内核,你可以在那里运行你的 CRI。

    因此,带有 Hyperkit 的 Docker Desktop 将与 Kubernetes 一起使用

    希望对您有所帮助!

    【讨论】:

    • 是的..明白了。 :)
    • 所以,据我了解这篇文章,Docker 引擎在嵌入式 linux 中运行(在 Hyperkit 中)。在 Mac 上,只有 docker 客户端二进制文件和 /var/run/docker.sock 被公开。 contianerdcontainerd.sock 必须在 Hyperkit 嵌入式 linux 上。在 mac 上安装 Kubernetes 会发现 CRI 是 docker.sock 中的 docker,并且使用 docker 客户端二进制文件将执行所有操作。我的理解正确吗?
    • 部分是的,但是 Docker 引擎没有运行在 Hyperkit 的嵌入式 linux 中,它运行在由 Hyperkit(Hypervisor)创建的 VM 的操作系统中。如果回答有用,请采纳
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 2021-02-24
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多