节点的工作原理

Swarm 模式允许您创建一个 一个或多个 Docker 引擎的集群,称为 swarm。一个 swarm 包括 一个或多个节点:运行 Docker 的物理机或虚拟机 发动机。

有两种类型的节点:管理器工作线程

Swarm 模式集群

如果您尚未阅读,请通读 Swarm 模式概述关键概念

管理器节点

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

使用 Raft 实现,管理器 维护整个 Swarm 和所有服务的内部状态一致 运行。出于测试目的,可以使用单个 经理。如果单管理器群中的管理器发生故障,则您的服务 continue run,但您需要创建一个新集群才能恢复。

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

  • 三个 Manager 的 Swarm 最多容忍一个 Manager 的损失。

  • 一个 5 个管理者集群最多允许同时丢失 2 个 Manager 节点。

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

    重要

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

Worker 节点

Worker 节点也是 Docker Engine 的实例,其唯一目的是 执行容器。Worker 节点不参与 Raft 分布式 状态、做出调度决策或提供 swarm 模式 HTTP API。

您可以创建一个包含一个 Manager 节点的 swarm,但不能有一个 worker 节点 没有至少一个 Manager 节点。默认情况下,所有 manager 也是 worker。 在单个管理器节点集群中,您可以运行命令,例如调度程序将所有任务放在本地引擎上。docker service create

防止调度程序将任务放置在多节点中的管理器节点上 swarm 中,将 Manager 节点的可用性设置为 。调度程序 在 Mode 模式下正常停止节点上的任务,并在节点上调度任务。调度程序不会将新任务分配给具有可用性的节点。DrainDrainActiveDrain

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

更改角色

您可以通过运行 将 worker 节点提升为管理器。 例如,您可能希望在以下情况下提升 worker 节点 使 Manager 节点脱机以进行维护。请参阅 node promotedocker node promote

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

了解更多信息

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