云计算核心技术Docker教程:Swarm模式管理和维护一群 Docker 引擎

2022-10-22

当您运行 Docker 引擎群时,管理器节点是管理群和存储群状态的关键组件。了解管理器节点的一些关键特性以正确部署和维护集群非常重要。

在Swarm上操作管理器节点

Swarm 管理节点使用Raft Consensus Algorithm来管理 swarm 状态。您只需要了解 Raft 的一些一般概念即可管理集群。

管理节点的数量没有限制。关于实现多少管理节点的决定是性能和容错之间的权衡。将管理器节点添加到 swarm 使 swarm 更具容错性。然而,额外的管理器节点会降低写入性能,因为更多的节点必须确认更新群状态的提议。这意味着更多的网络往返流量。

Raft 需要大多数管理者(也称为法定人数)就对群的提议更新达成一致,例如节点添加或删除。成员操作受制于与状态复制相同的约束。

维持管理者的法定人数

如果 swarm 失去了管理者的法定人数,swarm 就无法执行管理任务。如果你的集群有多个管理器,总是有两个以上。为了保持法定人数,必须有大多数经理可用。建议使用奇数个管理器,因为下一个偶数不会使法定人数更容易保持。例如,无论您有 3 位还是 4 位经理,您仍然只能失去 1 位经理并保持法定人数。如果你有 5 或 6 个经理,你仍然只能失去两个。

即使 swarm 失去管理器的法定人数,现有工作节点上的 swarm 任务也会继续运行。但是,不能添加、更新或删除 swarm 节点,也不能启动、停止、移动或更新新的或现有的任务。

如果您确实失去了管理器的法定人数,请参阅从失去法定人数中恢复以了解故障排除步骤。

配置管理器以在静态 IP 地址上

启动群时,您必须指定–advertise-addr标志以将您的地址广告给群中的其他管理器节点。有关更多信息,请参阅以 swarm 模式运行 Docker 引擎。因为管理器节点是基础设施的一个稳定组件,你应该使用固定的 IP 地址作为广告地址,以防止 swarm 在机器重启时变得不稳定。

如果整个 swarm 重新启动并且每个管理器节点随后都获得了一个新的 IP 地址,则任何节点都无法联系现有的管理器。因此,当节点尝试通过其旧 IP 地址相互联系时,集群会被挂起。

工作节点可以使用动态 IP 地址。

您好!请登录

点击取消回复