Насколько я понимаю, Kubernetes kubelet общается с CRI (Container Runtime Interface) для запуска контейнеров. Таким образом, каждая среда выполнения контейнера, которая используется в Kubernetes, должна соответствовать реализации CRI (https://www.ianlewis.org/en/container-runtimes-part-4-kubernetes-container-run). Версия Docker Desktop не запускает ни dockerd, ни containerd. Он запускает HyperKit для виртуализации высокого уровня. Соответствует ли он CRI и может ли он использоваться с Kubernetes?
Может ли версия Docker Desktop работать с Kubernetes?
Ответы (1)
Hyperkit - это не CRI, это гипервизор, такой как VirtualBox, который используется для Docker Desktop for Mac
. Из официальной документации Docker
Docker Desktop для Mac использует HyperKit вместо Virtual Box. Hyperkit - это легкое решение для виртуализации macOS, построенное на основе Hypervisor.framework в macOS 10.10 Yosemite и выше.
Если вы посмотрите этот блог, он очень хорошо объясняет отношения между гипервизорами и CRI.
Как вы можете видеть на изображении выше, Docker Container Engine (или containerd) находится в верхней части ядра Linux, поэтому он не имеет ничего общего с гипервизорами. В этом основное различие между виртуальными машинами и контейнерами. Если у вас есть ядро Linux, вы можете запустить там свой CRI.
Итак, Docker Desktop с Hyperkit будет работать с Kubernetes.
Надеюсь, это поможет!
/var/run/docker.sock
. contianerd
и containerd.sock
должны быть на встроенном Linux Hyperkit. Установка Kubernetes на Mac определит, что CRI - это докер из docker.sock, а использование двоичного файла клиента докера будет выполнять все операции. Я правильно понимаю?
- person sn.anurag; 06.06.2019