gpt4 book ai didi

docker - 为什么要为 docker swarm 集群中的节点选择工作角色?

转载 作者:行者123 更新时间:2023-12-02 03:02:18 26 4
gpt4 key购买 nike

假设我们有一个包含 10 个节点、4 个管理器和 6 个工作器的测试设置。

当leader manager失败时,其他3个manager将选择另一位manager作为leader。

当这位领导者也失败时,我们只剩下 4 名经理中的 2 名。其他经理然后说

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.

因为我们剩下的管理器不超过一半,所以尽管集群还剩下 2 个管理器,但他们将无法选择新的领导者。

我的问题是

  1. 这条规则的意义,因为尽管有 2 个可用的管理器,但只要没有向集群添加其他管理器,集群就没有领导者并且不再可管理。
  2. 为什么我应该为节点选择角色 worker ?让节点作为worker有什么好处?默认情况下,管理器也充当工作器,但缺点是管理器节点发生故障时它们无法接管。

最佳答案

  1. Docker 建议使用具有奇数个管理节点的系统。因此,您初始设置的 4 个管理器与拥有 3 个管理器节点一样好。建议您从 5 个节点开始,因为您会失去 2 个节点。另外,您使用的方式是否有任何严重的问题需要解决? (失去这么多节点并不是一个好兆头)

If the swarm loses the quorum of managers, the swarm cannot perform management tasks. If your swarm has multiple managers, always have more than two. To maintain quorum, a majority of managers must be available. An odd number of managers is recommended, because the next even number does not make the quorum easier to keep. For instance, whether you have 3 or 4 managers, you can still only lose 1 manager and maintain the quorum. If you have 5 or 6 managers, you can still only lose two.

  • 拥有专用的工作节点可确保它们不会参与 Raft 分布式状态、做出调度决策或提供集群模式 HTTP API。因此,这些节点的全部计算能力专门用于运行容器。
  • because manager nodes use the Raft consensus algorithm to replicate data in a consistent way, they are sensitive to resource starvation

    引用自docker官方文档link

    关于docker - 为什么要为 docker swarm 集群中的节点选择工作角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49646529/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com