节点如何工作

Swarm 模式可让您创建一个由一个或多个 Docker 引擎组成的集群,称为 Swarm。集群由一个或多个节点组成:运行 Docker 引擎的物理机或虚拟机。

有两种类型的节点: 管理者工人

Swarm模式集群

如果您还没有阅读 Swarm 模式概述关键概念,请仔细阅读。

管理节点

管理器节点处理集群管理任务:

使用 Raft实现,管理器可以维护整个集群及其上运行的所有服务的一致内部状态。出于测试目的,可以使用单个管理器运行集群。如果单管理器集群中的管理器发生故障,您的服务将继续运行,但您需要创建一个新的集群来恢复。

为了利用 Swarm 模式的容错功能,我们建议您根据组织的高可用性要求实施奇数个节点。当您有多个管理器时,您可以从管理器节点的故障中恢复而无需停机。

  • 三名经理群体最多可以容忍一名经理的损失。

  • 五个管理器群最多可容忍两个管理器节点同时丢失。

  • 集群中管理节点的数量为奇数,N最多允许丢失(N-1)/2管理节点。 Docker 建议一个集群最多有七个管理节点。

    重要的

    添加更多管理器并不意味着可扩展性的提高或性能的提高。一般来说,情况恰恰相反。

工作节点

工作节点也是 Docker 引擎的实例,其唯一目的是执行容器。 Worker 节点不参与 Raft 分布式状态、做出调度决策或服务 Swarm 模式 HTTP API。

您可以创建由一个管理器节点组成的集群,但如果没有至少一个管理器节点,则无法拥有工作节点。默认情况下,所有经理也是工人。在单个管理器节点集群中,您可以运行类似命令docker service create,并且调度程序将所有任务放在本地引擎上。

要防止调度程序将任务放置在多节点群中的管理器节点上,请将管理器节点的可用性设置为Drain。调度程序在Drain模式下优雅地停止节点上的任务并在节点上调度任务 Active。调度程序不会将新任务分配给Drain 可用的节点。

请参阅 docker node update 命令行参考以了解如何更改节点可用性。

改变角色

您可以通过运行将工作节点提升为管理节点docker node promote。例如,当您使管理器节点脱机进行维护时,您可能希望升级工作器节点。请参阅 节点提升

您还可以将管理节点降级为工作节点。请参阅 节点降级

了解更多

  • 了解 Swarm 模式 服务的工作原理。
  • 了解 PKI如何在 Swarm 模式下工作。