Skip to main content

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