hostprofi.ru
Подобрать хостинг
Термин·буква D

Docker Swarm

краткое определение

Docker Swarm — встроенный оркестратор Docker для кластерного управления контейнерами. Превращает несколько Docker-хостов в единый кластер с балансировкой нагрузки и автоматическим восстановлением.

Docker Swarm — нативный оркестратор кластеров для Docker, встроенный в Docker Engine. Объединяет несколько Docker-хостов в единый кластер (Swarm), распределяет контейнеры по нодам, обеспечивает балансировку нагрузки и отказоустойчивость. В отличие от Kubernetes, Swarm значительно проще в настройке — кластер из 5 нод поднимается за 10 минут.

Архитектура Swarm

Кластер состоит из manager-нод и worker-нод. Managers хранят состояние кластера (через Raft consensus), планируют размещение сервисов, обрабатывают Swarm API. Workers выполняют контейнеры. Рекомендуемое число managers: 3 или 5 (нечётное для кворума Raft).

# Инициализировать Swarm
docker swarm init --advertise-addr 192.168.1.10

# Добавить воркер-ноду (команда из вывода init)
docker swarm join --token SWMTKN-1-xxx 192.168.1.10:2377

# Создать сервис (5 реплик nginx)
docker service create --name web --replicas 5 --publish 80:80 nginx

# Обновить количество реплик
docker service scale web=10

# Список сервисов
docker service ls

Docker Stack

Docker Stack — деплой многосервисных приложений в Swarm через Docker Compose-файл. Тот же docker-compose.yml используется и для локальной разработки, и для Swarm-деплоя:

docker stack deploy -c docker-compose.yml myapp
docker stack ls
docker stack services myapp

История

Docker Swarm v1 запущен в декабре 2014 года как отдельный проект. В Docker 1.12 (июль 2016) Swarm mode интегрирован непосредственно в Docker Engine — это «Swarm mode» (не путать со старым standalone Swarm). Docker Inc. конкурировала с Kubernetes, Mesos, Nomad. После того как в 2017–2018 годах Kubernetes занял доминирующее положение, Docker Swarm перестал активно развиваться. В 2022 году Mirantis (владелец Docker Engine) объявил о продолжении поддержки Swarm mode.

Docker Swarm vs Kubernetes

ПараметрDocker SwarmKubernetes
Сложность настройкиНизкая (минуты)Высокая (часы/дни)
ЭкосистемаБазоваяОгромная
МасштабДо 1 000 нод5 000+ нод
Auto-scalingНетHPA, VPA
ПоддержкаСнижаетсяАктивная

На что обращать внимание

Docker Swarm — хороший выбор для малых и средних проектов (3–10 нод) с ограниченным DevOps-ресурсом: он значительно проще Kubernetes. Для продакшна рекомендуется 3 manager-ноды с VPS от 2 ГБ RAM. Traefik — популярный load balancer для Swarm с автоматическим SSL через Let's Encrypt. Overlay network в Swarm шифрует трафик между нодами (опция --opt encrypted). Для хранения данных используй Docker Volumes с NFS-монтированием или GlusterFS для shared storage.

История Docker Swarm

Docker Swarm mode интегрирован непосредственно в Docker Engine 1.12 (июль 2016 года), заменив отдельный инструмент Docker Swarm (2014). Встроенная оркестрация основана на протоколе Raft для leader election и хранения состояния кластера. Пиковая популярность — 2016–2018 годы, до массового принятия Kubernetes. Docker Inc. объявила о поддержке Kubernetes в Docker Enterprise Edition в 2017 году. Сегодня Docker Swarm используется для простых сценариев multi-host деплоя, где оверхед Kubernetes избыточен.

Docker Swarm vs Kubernetes

ПараметрDocker SwarmKubernetes
Сложность настройкиНизкая (минуты)Высокая (часы/дни)
МасштабированиеДо ~100 нодТысячи нод
ЭкосистемаОграниченнаяОгромная
ObservabilityБазоваяPrometheus, Grafana, Jaeger
Rolling updatesДаДа (богаче)
Поддержка в индустрииСокращаетсяРастёт

На что обращать внимание

Docker Swarm подходит для небольших команд с 3–10 нодами без необходимости сложного автомасштабирования. Для production на VPS с несколькими нодами Swarm — более простая альтернатива Kubernetes. Manager ноды требуют нечётного количества (1, 3, 5) для кворума Raft. Overlay network в Swarm шифрует трафик между нодами (опция --opt encrypted). Для shared storage используй NFS-volume driver или GlusterFS.

Другие термины