管理swarm(13) – 节点介绍

从Docker Engine 1.12版本起开始引进swarm模式来创建一个或多个Docker Engines的集群,称为swarm。一个swarm包含一个或多个节点:运行在Docker Engine1.12或更高版本的swarm模式下的物理的或虚拟的机器。
有两种类型的节点:managers和workers。

Manager节点

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

  • 维护集群状态
  • 调度服务
  • 提高swarm模式的HTTP API服务
  • swarm管理器使用Raft来实现维护整个swarm集群一致的内部状态。如果是测试的目的可以只运行一个swarm管理节点。如果单管理器的swarm出问题下线了,服务仍然会运行,不过你需要创建一个新的集群来恢复它。
    要利用swarm模式的容错功能,Docker建议根据你对高可用的要求来创建奇数的管理节点。当你有多个管理节点时,可以不用停机从故障的管理节点中恢复。

  • 三个管理节点的swarm最大允许一个管理节点宕机
  • 五个管理节点的swarm最大允许两个管理节点宕机
  • N个管理节点的swarm最大允许(N-1)/2个管理节点宕机
  • Docker推荐最多创建7个管理节点
  • Worker节点

    Worker节点是Docker Engine的实例,其唯一目的是运行容器。Worker节点不参与Raft分布状态,作调度的决定或提供swam模式的HTTP API服务。
    你可以创建单个管理节点的swarm,不过你不能只有一个Worker节点而没有管理节点。默认情况下,所有的管理节点也是Worker节点。在单管理节点的集群中,你可以运行命令如docker service create,然后调度器会把所有的任务放到本地执行。
    如果你想阻止调度器把任务分配到多个节点的集群的管理节点上,你可以设置管理节点的状态为Drain。调度器就不会继续把任务分发这些节点上执行。

    改变角色

    你可以通过执行docker node promote来把一个worker节点提升为管理节点。例如,你当你的管理节点下线时你可能会想把worker节点提升为管理节点。

    标签:Swarm 发布于:2019-11-20 07:27:34