Kubernetes как замена Docker
Может ли Kubernetes вытеснить Docker/Podman как настольный инструмент разработчика?
Labs
- С одной стороны Kubernetes позволяет осуществлять такие же простые операции, как и Docker.
Например запуск контейнера выглядит так же просто, как и в Docker:
kubectl run ubuntu --image=ubuntu -it --rm -- bash
- С другой стороны он обеспечивает гораздо более высокий уровень функциональности и её
масштабируемости.
- Как правило, всё равно есть доступ к containerd через CLI (например,
crictl, ctr).
- Нет необходимости в изучении синтаксиса
docker compose. Решения основанные на манифестах
переносимы из локальной среды разработки в промышленные кластера. При этом, даже из
коробки, Kubernetes предоставляет гибкие возможности вроде Kustomize.
- В ходе черновых экспериментов с k3s (v1.28.5+k3s1), стоимость его запуска была в районе
375M RAM. Также некоторые требования по ресурсами приводятся на официальном сайте
https://docs.k3s.io/reference/resource-profiling. Много это или мало? Сложно сказать.
Скорее всего для целей разработки масштабных систем, где только в режиме интеграционного
тестирования могут разворачиваться десятки контейнеров с различными серверными приложениями,
а также для их последующего развертывания в промышленных кластерах, это не так уж и много.
Минимальные требования к докеру, также на официальном сайте, выглядят ещё внушительней
https://docs.docker.com/desktop/install/linux-install/.
- Для Windows с Podman/Docker инсталляцией не нужна дополнительная специализированная виртуальная
машина в WSL. Можно легко поставить k3s в основную рабочую
(k3s).
- Расширение VSCode для работы с докером перестало использовать API, сделав невозможным работу
с Podman. Расширение для k8s практически лишено подобных проблем и нормально работает с k3s,
minikube, kind и другими.