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

Docker 从swarm中删除终止的实例(管理器),并恢复swarm状态,docker,docker-swarm,docker-swarm-mode,Docker,Docker Swarm,Docker Swarm Mode,我有一个docker swarm集群,masters在6个AWS实例上运行,在一些测试中,我们意外终止了3个实例(运行masters)。现在swarm状态似乎不起作用,产生如下错误: 错误:rpc错误:代码=未知描述=群没有领导者。在线的经理可能太少了。确保半数以上的经理在线 我尝试通过docker命令删除终止的管理器,但无论我执行什么命令,如docker node ls或其他命令,都会产生与上述相同的错误。我还尝试添加新节点,但添加到swarm时会产生相同的错误 当我在其中一个管理器中发布do

我有一个docker swarm集群,masters在6个AWS实例上运行,在一些测试中,我们意外终止了3个实例(运行masters)。现在swarm状态似乎不起作用,产生如下错误:

错误:rpc错误:代码=未知描述=群没有领导者。在线的经理可能太少了。确保半数以上的经理在线

我尝试通过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

swarm中的集群设施由manager节点维护。 在您的案例中,由于删除了一半的群集管理器,您失去了群集仲裁。在这种特殊情况下,没有节点可以选择新的管理者领导者,也没有管理者可以控制群

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

在管理器节点上,运行以下命令:

docker swarm init --force-new-cluster

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

群中的集群功能由管理器节点维护。 在您的案例中,由于删除了一半的群集管理器,您失去了群集仲裁。在这种特殊情况下,没有节点可以选择新的管理者领导者,也没有管理者可以控制群

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

在管理器节点上,运行以下命令:

docker swarm init --force-new-cluster

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

您好,谢谢您的回答。它不能在一个管理器上工作,但在另一个管理器上工作,所有管理器都需要重新加入集群。但我一直认为重新初始化可能会创建具有新令牌ID的新集群,这似乎没什么,谢谢你的回答。它不能在一个管理器上工作,但在另一个管理器上工作,所有管理器都需要重新加入集群。但我一直认为重新初始化可能会创建具有新令牌ID的新集群,但事实并非如此