跳转至

Swarm工作原理

基本概念

Swarm集群中的每一个Docker主机都称为"节点(node)",其又分:

  • Manager节点:管理节点。负责集群的管理和控制,Swarm集群允许多个Manager节点,多个Manager节点中仅允许唯一一个Leader
  • Worker节点:工作节点。负责接收来自Manager节点的任务分配,并执行相应的容器操作
  • 节点的多重身份:Swarm节点既可是Manager,也可是Worker.

Raft协议 用于选举Manager节点的Leader(至少2个Manager节点参与选举),并确保Manager节点之间的状态信息同步

工作流程

  • 集群初始化:通过 docker swarm init 初始化集群,执行该命令的Docker主机自动成为Manager节点(Leader)
  • 节点加入:将其他Docker主机加入集群。Manager节点会为新节点分配角色和相应的任务
  • 服务定义:用户通过定义服务来描述容器化应用程序,定义完成后交给Manager节点去分配
    • 任务是Swarm中的最小调度单位,表现为一个单一的容器
    • 服务是一组任务的集合且定义了任务属性
  • 调度策略:Leader节点根据调度策略(spread-默认,binpackrandom),在集群中选择合的节点来部署容器实例
  • 容器编排:Leader节点负责对容器进行编排等操作和管理,包括创建、启动、停止、重启容器实例等操作