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



我有一个 docker 群集群,主节点在 6 个 AWS 实例上运行,在一些测试过程中,我们不小心终止了 3 个实例(运行主节点(。现在,群状态似乎不起作用,生成错误,例如:

错误:rpc 错误:代码 = 未知 desc = 群没有领导者。在线的经理可能太少。确保超过一半的经理在线

我尝试通过 docker 命令删除终止的管理器,但无论我做什么命令,比如docker node ls或其他命令,它都会给我与上述相同的错误。我还尝试添加新节点,同时添加到 swarm 时会产生相同的错误。

当我在其中一个管理器中发出 docker 信息但无能为力时,我可以看到所有终止的实例 IP。如何从此状态恢复?

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 swarm init --force-new-cluster

在其他管理器节点上,我不记得它们是否加入新集群,或者您是否需要离开并再次加入集群。

最新更新