junior
Чем Kubernetes отличается от Docker Compose и Docker Swarm?
Docker Compose, Docker Swarm и Kubernetes решают задачу запуска нескольких контейнеров, но на разных масштабах и с разным уровнем возможностей.
| Характеристика | Docker Compose | Docker Swarm | Kubernetes |
|---|---|---|---|
| Назначение | Запуск нескольких контейнеров на одной машине (разработка) | Простая оркестрация в кластере | Полноценная оркестрация для продакшена |
| Масштабирование | Ручное, ограниченное | Базовое | Автоматическое (HPA, VPA) |
| Самовосстановление | Нет (только restart: always) |
Базовое | Продвинутое (health checks, rolling updates) |
| Service Discovery | DNS внутри docker-compose сети | Встроенный | Встроенный, гибкий (Service, Ingress) |
| Балансировка нагрузки | Нет (нужен внешний балансировщик) | Встроенная | Встроенная, с множеством вариантов |
| Сложность | Низкая | Средняя | Высокая |
| Подходит для | Локальной разработки | Небольших кластеров | Продакшена любого масштаба |
| Экосистема | Минимальная | Ограниченная | Огромная (Helm, Istio, Prometheus и т.д.) |
Когда что использовать
- Docker Compose — для локальной разработки: поднять БД, Kafka, Redis и приложение одной командой
- Docker Swarm — для небольших проектов, где нужен простой кластер без сложной конфигурации
- Kubernetes — для продакшена, когда требуется надёжность, масштабируемость, автоматизация и богатая экосистема
На собеседовании: ключевое — показать понимание, что Compose для dev, Swarm для простых случаев, K8s для продакшена. Частая ошибка — не упомянуть, что Docker Swarm фактически не развивается и в 2026 году практически не используется для новых проектов.