互联网技术 / 互联网资讯 · 2023年12月24日

Docker集群节点运行原理解析

Docker engine 1.12引入了swarm模式,使您可以创建一个或多个Docker engine集群,称为swarm。一个群集由一个或多个节点组成:以集群模式运行Docker engine 1.12或更高版本的物理机或虚拟机。

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

云计算核心技术Docker教程:Docker集群节点如何工作

管理者节点

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

  • 维持集群状态
  • 调度服务
  • 服务群模式HTTP API端点

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

为了利用群体模式的容错功能,Docker建议您根据组织的高可用性要求实现奇数个节点。如果拥有多个管理器,则可以从管理器节点的故障中恢复,而无需停机。

  • 一个由三名经理组成的群体最多可以容忍一名经理的损失。
  • 五个管理器群最多可以同时丢失两个管理器节点。
  • 一个N管理器群集最多可以容忍管理器的丢失 (N-1)/2。
  • Docker建议最多为七个管理器节点。

工作节点

工作程序节点也是Docker engine的实例,其唯一目的是执行容器。工作程序节点不参与Raft分布式状态,不制定调度决策或服务于群体模式HTTP API。

您可以创建一个由一个管理器节点组成的集群,但是如果没有至少一个管理器节点就不能有一个工作器节点。默认情况下,所有经理也是工人。在单个管理器节点集群中,您可以运行诸如之类Docker service create的命令,而调度程序会将所有任务放置在本地引擎上。

为了防止调度程序将任务放置在多节点集群中的管理器节点上,请将管理器节点的可用性设置为DRAIn。调度程序会以DRAIn模式正常停止节点上的任务,并调度Active节点上的任务。调度程序不会将新任务分配给具有DRAIn 可用性的节点。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册