Docker Swarm
Кластеризация приложений, упрощенный K8s.
Типы Nodes (хост Docker в Swarm кластере):
- manager: управление состоянием кластера и распределение задач по workers
- workers: получают и выполняют задачи
Конфигурация и состояние кластера хранится в распределенной хранимой в ОП БД, реплицированной по всем manager. Сервис (service) является атомарным элементом для управления. Сверху накручиваются фишки типа масштабирования, постоянного обновления и восстановления.
Для Node желательно настройка dns имен (в моем случае manager1, manager2, worker1, worker2)
Инициализация кластера
Инициализация первого manager - добавление остальных manager - добавление worker. Инициализация первого manager:
docker swarm init
Команда выведет похожее
Swarm initialized: current node (m1bhltzuvvzippoetl7b26m3j) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-365u...06ux 192.168.1.10:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Основные команды
Команда | Доп. пар. | Описание |
docker swam init | Инициализация первого manager кластера | |
--advertise-addr 10.0.0.1:2377 | Необязательный параметр. Нужен если есть внешний балансировщик нагрузки - тогда адрес балансировщика, и указать listen-addr. | |
--listen-addr 10.0.0.1:2377 | Необязательный параметр. Нужен если много ip адресов. | |
docker node ls | Список node в кластере | |
docker swarm join-token | worker |