Docker Engine 1.12 引入了 Swarm 模式,使你能够将一个或多个 Docker Engine 组成一个集群,形成 Swarm。Swarm 由一个或多个节点组成,在 Swarm 模式下运行 Docker Engine 1.12 及以上版本的物理机或虚拟机。
有两种类型的节点:Manager 和 Worker。

管理节点
管理节点负责集群管理任务:
- 维护集群状态
- 调度服务
- 为群集的 HTTP API 端点提供服务
通过 Raft 协议实现一致性,管理节点维护整个 Swarm 及其上运行的所有服务的内部状态。出于测试目的,可以只运行单个管理节点。若单一管理节点发生故障,服务将继续运行,但需要创建新集群来恢复。
为了利用 Swarm 的容错特性,建议根据组织的高可用性要求,部署奇数个节点。当存在多个管理节点时,可以在不停机的情况下从管理节点故障中恢复。
- 一个包含 3 个管理节点的集群最多可容忍一个管理节点的损失。
- 一个包含 5 个管理节点的集群最多可容忍同时丢失两个管理节点。
- 一个包含 N 个管理节点的集群最多可容忍管理节点的丢失度为 (N-1)/2。
- 通常建议一个集群最多包含 7 个管理节点。
