从蜂群中删除终止的实例(管理器),并恢复蜂群状态。

问题描述 投票:1回答:1

我有一个docker swarm集群,主程序运行在6个AWS实例上,在一些测试过程中,我们不小心终止了3个实例(运行主程序)。现在的群集状态似乎不工作产生错误,如。

Error: rpc error: code = Unknown desc = The swarm does not have a leader. 有可能是在线的管理人员太少。确保有一半以上的管理人员在线。

我试着通过docker命令删除终止的管理人员,但无论我做什么命令,如 docker node ls 或其他命令,它给我同样的错误,如上。我也试过添加新的节点,当添加到swarm时,它产生同样的错误。

我可以看到所有终止的实例的IP的时候,我发出docker信息在一个经理,但不能做任何事情。我如何能从这种状态恢复?

 Node Address: 10.80.8.195
 Manager Addresses:
  10.80.7.104:2377
  10.80.7.213:2377
  10.80.7.226:2377
  10.80.7.91:2377
  10.80.8.195:2377
  10.80.8.219:2377
docker docker-swarm docker-swarm-mode
1个回答
0
投票

群内的集群设施是由管理器节点维护的。在你的案例中,你通过删除一半的群集管理器而失去了群集的法定人数。在这种特殊情况下,没有节点可以选出新的经理领导,也没有经理可以控制蜂群。

在这种情况下,恢复集群的唯一方法是重新初始化集群,这将强制创建一个新的集群。

在一个管理器节点上,运行这个命令。

docker swarm init --force-new-cluster

而在其他经理节点上,我不记得他们是否加入新的集群 或者你是否需要离开并再次加入集群。

© www.soinside.com 2019 - 2024. All rights reserved.