Работники не могут подключиться к Swarm на AWS EC2

Я новичок в AWS EC2,

Цель: создать 3 экземпляра машин с Ubuntu в EC2, инициализировать Swarm в первом экземпляре и добавить 2 других в качестве рабочих в Swarm.

Ошибка: инициализация Swarm работает нормально, но добавление рабочих в Swarm приводит к ошибке

~$ docker swarm join --token SWMTKN-1-4yquvx0xihdhcv0m1vmxmbq4q45hoanm9ig00pue7opx3dhc1s-2ybrjxx97mpjyo351sx8jyisp 172.31.31.41:2377
 Error response from daemon: Timeout was reached before node was joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.

~$ docker info
*****
Swarm: error
 NodeID:
 Error: rpc error: code = DeadlineExceeded desc = context deadline exceeded
 Is Manager: false
******

Я посмотрел на соответствующие вопросы по stackru ( Docker 1.12.1: после инициации Swarm, работники не могут присоединиться к Swarm), но эти решения не работают в моем случае

Как мне разрешить моим двум другим экземплярам присоединиться к рою

2 ответа

Решение

Это похоже на проблему с вашими настройками безопасности. Убедитесь, что все необходимые порты открыты

На менеджеров:

Custom TCP Rule TCP 2377    swarm + remote mgmt
Custom TCP Rule TCP 7946    swarm
Custom UDP Rule UDP 7946    swarm
Custom UDP Rule UDP 4789    swarm

На рабочих

Custom TCP Rule TCP 7946    swarm
Custom UDP Rule UDP 7946    swarm
Custom UDP Rule UDP 4789    swarm

Подробности смотрите ниже

https://gist.github.com/BretFisher/7233b7ecf14bc49eb47715bbeb2a2769

Также проверьте ufw status, iptables -S а также sestatus чтобы убедиться, что любой из них не блокирует доступ

Просто нужно перейти к экземпляру EC2 узла менеджера, отредактировать входящее правило группы безопасности и добавить правило, разрешающее tcp на порту 2377.

Другие вопросы по тегам