我正在努力学习docker和swarm。我创建了一个有3个节点的swarm,并使用virtualbox和docker-machine完成了一个示例。我一旦我重新启动了我的机器,所有节点都显示为停止。我使用
docker-machine start node1 node2 node3
所有节点都已启动,但我仍然无法列出节点,即使在主节点上也是如此,并出现以下错误:
docker@node1:~$ docker node ls
Error response from daemon: rpc error: code = Unknown desc = The swarm does not have a leader. It's possible that too few managers are online. Make sure more than half of the managers are online.
node 1(master)上的docker状态也是pending。
Swarm: pending
NodeID: c93hv5pixlfiei7q9qneuiuen
Error: rpc error: code = Unknown desc = The swarm does not have a leader. It's possible that too few managers are online. Make sure more than half of the managers are online.
每次我重新启动机器时都会出现这个错误。这导致我每次都要从启动开始设置所有内容。
有没有什么方法可以避免一次又一次地设置集群。
谢谢
3条答案
按热度按时间isr3a4wc1#
你必须在 Boot 配置中包含docker service start。
hc8w905p2#
阻止
demote
要“关闭”/离开swarm的节点React
没有健康节点重启。
启动〉〉停止Docker引擎(不是
restart
)并再次初始化Swarm。之后验证防火墙规则集,因为Docker会覆盖它。如果存在健康的管理器节点,则排空左节点。
参考https://cynici.wordpress.com/2018/05/31/docker-info-rpc-error-on-manager-node/
pbwdgjma3#
请检查Linux上的防火墙:
如果你想提升某个节点为管理器,请检查端口=2377是否在特定节点上接受请求。然后只有节点作为管理器工作。否则你会得到如下错误:
来自守护程序的错误响应:rpc error:code = Unknown desc =群没有领导者。可能是在线的管理器太少。请确保一半以上的管理器在线。
解决方案:在防火墙中添加端口号2377。
firewall-cmd --zone=public --add-port=2377/tcp --permanent
成功
firewall-cmd --reload
成功