Я работаю над созданием 3-х менеджеров Docker Swarm с использованием Docker CE 19.03 и трех машин CentOS 7.
Я установил докер через yum, включил службу и запустил ее.
Я создал "сервис" firewalld и разрешил (для докеров):
Я смог запустить рой и присоединиться к рабочему. Третий сервер, к которому я пытался присоединиться в качестве менеджера, не удалось
Ответ об ошибке от демона: менеджер остановлен: не удается инициализировать узел raft: ошибка rpc: code = Unknown desc = не удалось подключиться к предполагаемому новому члену кластера, используя его объявленный адрес: ошибка rpc: code = DeadlineExceeded desc = крайний срок контекста превышен
Так что я отказался docker swarm leave
и попробовал присоединиться как рабочий. Проблем не получилось. Теперь почему я не могу присоединиться как менеджер, но успешно присоединюсь как работник?
Я попытался разрешить 2376 / tcp (на https://www.digitalocean.com/community/tutorials/how-to-configure-the-linux-firewall-for-docker-swarm-on-centos-7) и отключение firewalld в одном диспетчере, чтобы проверить, не проблема ли это в брандмауэре, но я получил ту же ошибку.
Итак, урок усвоен, доверять сообщения об ошибках.
Я применил свой шаблон службы firewalld и забыл перезагрузить firewalld, чтобы порты фактически не были открыты. По-видимому, все эти порты на самом деле не требовались для подключения в качестве рабочих, а в качестве диспетчера.
Я заметил в моем балансировщике нагрузки, что мои контейнеры часто показывались как неисправные на этом хосте, когда это не так, что заставило меня дважды проверить все.
Для жетона роя существует ограничение по времени. Вы можете снова создать токен, чтобы присоединиться