在Docker网站上写道:
MANAGER STATUS
列显示节点参与Raft 共识:
- 没有值表示不参与群组管理的工作节点。
Leader
表示该节点是主要管理器节点,它为群组做出所有群组管理和编排决策。Reachable
表示该节点是参与Raft共识仲裁的管理员节点。如果领导节点变得不可用,则 节点有资格被选为新的领导者。Unavailable
表示该节点是无法与其他管理员通信的管理员。如果管理器节点不可用,您应该 要么将新的管理器节点加入群组,要么提升工作节点 成为一名经理。
因此,经理领导制定所有群体管理和协调决策 但那些决定是什么?
我可以从任何经理创建新服务,我不需要从经理领导那里做。
更新
在this article中提到过,就像@Yunakun提到的那样,一切都在经历:
在经理中,领导者节点是记录所有节点的节点 在群集中完成的操作(添加/删除节点,创建 服务,...)。 Swarm然后确保领导者的日志 在每个经理中复制,因此其中一个人可以担任领导角色 如果当前的一个不可用。
答案 0 :(得分:2)
群集管理器节点使用Raft Consensus Algorithm来管理群状态。
Raft是基于领导者的,这意味着只有领导者节点才能够改变群体的状态。如果您将需要状态更改的请求发送到关注者节点,则此请求将转发到领导者节点。
那些决策是可以更改群集状态的决策,例如,在哪个节点上部署新服务,或者应该扩展正在运行的服务。
决定由Raft内部处理。它们对用户应该是透明的。