Если вы уже давно интересуетесь DevOps то вы скорее всего слышали про обычный Swarm, который ставился отдельно и не был частью Docker. Это был отдельный внешний проект (до 2016 г.), представлявший собой менеджер, который соединяет несколько Docker-демонов в кластер. Т.е. это был отдельный бинарник swarm, который управлял демонами Docker через API. Также требовалось внешнее хранилище (Consul, etcd, Zookeeper) для хранения конфигурации. Сейчас обычный Swarm уже не используется и официально переехал в сам продукт Docker.
Docker Swarm mode (или просто Docker Swarm)
Начиная с Docker 1.12 (2016 г.), Swarm встроили прямо в Docker Engine, что упростило использование и конфигурацию Swarm для конечного пользователя.
| Было | Стало |
|---|---|
Отдельный бинарник swarm |
Встроено в dockerd |
| Внешний KV-store (etcd/Consul) | Встроенная Raft-база |
| Простое объединение демонов | Полноценная оркестрация (services, tasks, scaling) |
| Без встроенной безопасности | Автоматические TLS-сертификаты между нодами |
| Нет встроенной сети | Overlay-сети, load-balancing и secrets из коробки |
Зачем мне Docker Swarm?
Docker Swarm — это встроенная в Docker система оркестрации контейнеров, то есть инструмент, который управляет запуском, масштабированием и отказоустойчивостью множества контейнеров, работающих на нескольких хостах (нодах).
При использовании обычного Docker вы получаете всего один хост с контейнерами, что приводит к потере всего при потере хоста с контейнерами. Docker Swarm — это кластер из многих хостов, действующих как один большой сервер. Соответственно при потере одного из хостов вы не теряете свои контейнеры и приложение продолжает свою работу.
Ключевые задачи, которые решает Docker Swarm:


Комментарии