©
本文档使用 PHP中文网手册 发布
Docker Engine 1.12 引入了群模式,使您能够创建一个或多个名为群集的码头引擎集群。群集由一个或多个节点组成:以群集模式运行 DockerEngine 1.12 或更高版本的物理或虚拟机。
有两种类型的节点:经理和工人。
如果您尚未阅读群体模式概述和关键概念。
Manager节点处理集群管理任务:
维护集群状态
调度服务
提供群集模式 HTTP API 端点
使用 Raft 实施,管理人员可以保持整个群体及其上运行的所有服务的一致内部状态。出于测试目的,可以使用单个管理器运行群集。如果单管理器群中的管理器出现故障,您的服务将继续运行,但您需要创建一个新群集以进行恢复。
为了利用群模式的容错功能,Docker 建议您根据贵组织的高可用性要求实施奇数个节点。当你有多个管理器时,你可以在没有停机时间的情况下从管理器节点的故障中恢复。
三管理者群体容忍一名管理人员的最大损失。
五管理者群体最多可同时丢失两个管理节点。
一个N
经理集群将容忍最多损失(N-1)/2
经理。
Docker 推荐一个群体最多有七个管理节点。
重要提示:添加更多管理者并不意味着可扩展性或更高的性能。一般来说,情况正好相反。
工作者节点也是 Docker Engine 的实例,其唯一目的是执行容器。工作者节点不参与 Raft 分布式状态,进行调度决策或服务于群集模式 HTTP API。
您可以创建一个管理节点群,但不能有一个没有至少一个管理节点的工作节点。默认情况下,所有经理都是工人。在单个管理器节点集群中,您可以像运行命令那样运行命令docker service create
,而且计划程序将把所有任务放在本地引擎上。
要阻止调度程序将任务放置到多节点群中的管理器节点上,请将管理器节点的可用性设置为Drain
。调度程序正常地停止Drain
模式中节点上的任务,并调度Active
节点上的任务。调度程序不会将新任务分配给具有Drain
可用性的节点。
请参阅docker node update
命令行参考以了解如何更改节点可用性。
您可以通过运行将工作节点提升为管理员docker node promote
。例如,当您将管理器节点离线进行维护时,您可能需要升级工作节点。请参阅节点宣传。
您也可以将管理器节点降级为工作节点。请参阅节点降级。
了解群集模式服务如何工作。
了解 PKI 如何在群集模式下工作。