Докер - Невозможно присоединиться к рою как менеджер, может присоединиться как рабочий

При выполнении команды docker swarm join (в качестве менеджера) я сталкиваюсь со следующей ошибкой:

Error response from daemon: manager stopped: can't initialize raft node: rpc error: code = Internal desc = connection error: desc = "transport: x509: certificate is not valid for any names, but wanted to match swarm-manager"

Присоединение к тому же рою, но как рабочий, работает безупречно.

Файлы журнала показывают мне следующие элементы:

kmo@GETSTdock-app01 ~ $ sudo tail -f /var/log/upstart/docker.log
time="2018-07-06T09:18:17.890620199+02:00" level=info msg="Listening for connections" addr="[::]:2377" module=node node.id=7j75bmugpf8k2o0onta1yp4zy proto=tcp
time="2018-07-06T09:18:17.892234469+02:00" level=info msg="manager selected by agent for new session: { 10.130.223.107:2377}" module=node/agent node.id=7j75bmugpf8k2o0onta1yp4zy
time="2018-07-06T09:18:17.892364019+02:00" level=info msg="waiting 0s before registering session" module=node/agent node.id=7j75bmugpf8k2o0onta1yp4zy
time="2018-07-06T09:18:18.161362606+02:00" level=error msg="fatal task error" error="cannot create a swarm scoped network when swarm is not active" module=node/agent/taskmanager node.id=7j75bmugpf8k2o0onta1yp4zy service.id=p3ng4om2m8rl7ygoef18ayohp task.id=weaubf3qj5goctlh2039sjvdg
time="2018-07-06T09:18:18.162182077+02:00" level=error msg="fatal task error" error="cannot create a swarm scoped network when swarm is not active" module=node/agent/taskmanager node.id=7j75bmugpf8k2o0onta1yp4zy service.id=6sl9y5rcov6htwbyvm504ewh2 task.id=j3foc6rjszuqszj41qyqb6mpe
time="2018-07-06T09:18:18.184847516+02:00" level=info msg="Stopping manager" module=node node.id=7j75bmugpf8k2o0onta1yp4zy
time="2018-07-06T09:18:18.184993569+02:00" level=info msg="Manager shut down" module=node node.id=7j75bmugpf8k2o0onta1yp4zy
time="2018-07-06T09:18:18.185020917+02:00" level=info msg="shutting down certificate renewal routine" module=node/tls node.id=7j75bmugpf8k2o0onta1yp4zy node.role=swarm-manager
time="2018-07-06T09:18:18.185163663+02:00" level=error msg="cluster exited with error: manager stopped: can't initialize raft node: rpc error: code = Internal desc = connection error: desc = \"transport: x509: certificate is not valid for any names, but wanted to match swarm-manager\""
time="2018-07-06T09:18:18.185492995+02:00" level=error msg="Handler for POST /v1.37/swarm/join returned error: manager stopped: can't initialize raft node: rpc error: code = Internal desc = connection error: desc = \"transport: x509: certificate is not valid for any names, but wanted to match swarm-manager\""

Я сталкиваюсь с аналогичными проблемами, когда присоединяюсь как рабочий, а затем пытаюсь повысить уровень узла до узла-менеджера.

Версия докера = 18.03.1

ОС = Ubuntu 14.04 LTS

Кто-нибудь знает, как это решить?


person Kenny Moens    schedule 06.07.2018    source источник
comment
Я бы отправил это как ошибку докера. Я никогда этого не видел и не вижу, чтобы еще никто об этом сообщил. github.com/moby/moby/issues   -  person Bret Fisher    schedule 09.07.2018


Ответы (2)


Это может сработать, а может и не сработать, но вы можете попробовать

При запуске менеджера:

docker swarm leave --force

Воссоздайте рой, используя:

docker swarm init --advertise-addr [ip-address for initial manager]

Затем попробуйте добавить менеджеров по объявленному адресу

Также вы можете попробовать:

  1. Закомментируйте прокси из файла определения прокси-сервера Docker /etc/systemd/system/docker.service.d/docker.conf или /etc/systemd/system/docker.service.d/docker_proxy.conf

  2. перезагрузите демона с помощью systemctl daemon-reload

  3. Возобновить docker swarm join --token manager

person VinDev    schedule 10.07.2018
comment
Возможно, воссоздание роя сработает, но я бы предпочел избежать этого. Наш рой состоит из 10 узлов и на данный момент обслуживает более 500 сервисов ... - person Kenny Moens; 16.07.2018
comment
Если вы разместите свой qorum - person VinDev; 16.07.2018
comment
Единственный способ вернуть его - воссоздать рой. - person VinDev; 16.07.2018
comment
У меня было 5 менеджеров, сейчас осталось только 4, поэтому я тоже хочу, чтобы он снова стал менеджером. - person Kenny Moens; 16.07.2018
comment
когда вы запускаете узлы докеров - person VinDev; 16.07.2018
comment
Когда вы бежите docker node ls, есть ли у вас лидер? - person VinDev; 16.07.2018
comment
Да у меня есть один. - person Kenny Moens; 17.07.2018
comment
Окончательным ответом на самом деле было то, что нам нужно отключить прокси-сервер на всех существующих узлах-менеджерах и узел, который присоединялся в качестве менеджера. - person Kenny Moens; 20.02.2019

Мне пришлось открыть порт 2377 в брандмауэре узла менеджера присоединения; казалось, это помогло. Я не уверен, что это лучшая практика, поскольку я все еще новичок в Docker Swarm: но добавьте его в список вещей, которые нужно попробовать, если у вас есть эта проблема.

person Casey Grzecka    schedule 07.01.2021