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.node.
Обеспечение высокой доступности кластера
Основные команды
| Команда | Доп. пар. | Описание |
| 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 | Инструкция по подключению worker |
| manager | Инструкция по подключению manager |