Работники не могут подключиться к 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.