0

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

4

1 回答 1

1

Hyperkit 不是 CRI,它是用于Docker Desktop for Mac. 来自官方 docker 文档

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

如果你查看这个博客,它很好地解释了管理程序和 CRI 之间的关系。

Docker-Hyperkit-连接

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

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

希望能帮助到你!

于 2019-06-03T10:13:23.517 回答