Docker - 无法以管理员身份加入 swarm,但可以以 worker 身份加入

Docker - Unable to join swarm as manager, able to join as worker

当执行 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\""

当我以工作人员身份加入,然后尝试将节点提升为管理节点时,我遇到了类似的问题。

Docker版本=18.03.1

OS = Ubuntu 14.04 LTS

有人知道如何解决这个问题吗?

这可能有效也可能无效,但您可以尝试

关于经理 运行:

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. 中注释掉代理
  3. 重新加载守护进程 systemctl daemon-reload

  4. 重新执行docker swarm join --token manager

对我来说,我必须在加入管理器节点的防火墙中打开端口 2377;这似乎可以解决问题。我不确定这是否是最佳实践,因为我仍然是 Docker Swarm 的新手:但如果您遇到此问题,请将其添加到要尝试的事项列表中。