Ответ
Добавление ноды в Swarm кластер — это процесс присоединения машины (физической или виртуальной) к управляемой группе Docker-демонов. Нода может быть manager (участвует в RAFT-консенсусе и управлении) или worker (исполняет задачи).
Процесс добавления worker-ноды:
-
Инициализируйте Swarm на первой машине (manager node).
# Выполняется на будущей manager-ноде docker swarm init --advertise-addr <MANAGER_IP> # Например: docker swarm init --advertise-addr 192.168.1.100Команда выведет токен для присоединения worker-нод:
docker swarm join --token SWMTKN-1-... 192.168.1.100:2377 -
На новой машине (worker node) выполните команду
join. Скопируйте и выполните команду, выведенную на шаге 1.# Выполняется на машине, которую хотим добавить как worker docker swarm join --token SWMTKN-1-0abcde... 192.168.1.100:2377В случае успеха вы увидите сообщение:
This node joined a swarm as a worker. -
Проверьте список нод на manager.
docker node lsВывод покажет всех нодов, их статус (
Ready/Down) и роль (Leader,Reachable,Worker).
Управление токенами и устранение неполадок:
- Если токен утерян, его можно посмотреть на manager-ноде:
docker swarm join-token worker # Для токена worker docker swarm join-token manager # Для токена manager - Порты: Убедитесь, что порт
2377/tcpоткрыт на firewall между нодами. Для overlay-сетей также нужны порты7946(UDP/TCP) и4789(UDP). - Чтобы нода покинула Swarm, выполните на ней
docker swarm leave. Если нода была manager, используйте флаг--force. - Для production: Всегда используйте несколько manager-нод (3, 5, 7) для отказоустойчивости. Добавляйте manager-ноды, используя
docker swarm join-token manager.