Дамы и господа, Docker всё, расходимся. Шутка.
А если серьезно, то у нас есть примерно год, чтобы избавиться от Docker в качестве среды исполнения контейнеров в Kubernetes. В версии 1.20 (которая выйдет уже совсем скоро) будет объявлен устаревшим Docker. А в версии 1.23 его поддержка будет удалена вовсе. Чтобы в будущем не было проблем с обновлением кластера, надо потрудиться уже сейчас.
Менять мы его будем на ContainerD, т.к. под капотом у того же Docker как раз ContainerD и лежит. Надо лишь убрать всех посредников.
Сейчас, без особых проблем, переезд можно осуществить только на Linux узлах. ContainerD для Windows хоть и зарелизился, но в Kubernetes всё еще не очень хорошо работает. Есть год на работу напильником.
Начинаем.
/etc/systemd/system/kubelet.service.d/0-containerd.conf
с вот таким содержимым:[Service]
Environment="KUBELET_EXTRA_ARGS=--container-runtime=remote --runtime-request-timeout=15m --container-runtime-endpoint=unix:///run/containerd/containerd.sock"
Docker
, то ContainerD
у нас уже есть на узлах. Его надо лишь инициализировать. Делается это так:sudo containerd config default | sudo tee /etc/containerd/config.toml
kubectl get nodes -owide
В качестве container-runtime ожидаем увидеть что-то вроде containerd://1.3.9
Вот и всё.