Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具
节点
运行 Docker 的主机可以主动初始化一个 Swarm 集群 docker swarm init
或者加入一个已存在的 Swarm 集群 docker swarm join
,这样这个运行 Docker 的主机就成为一个 Swarm 集群的节点 ( Node ) 。
管理节点
用于 Swarm 集群的管理, 一个 Swarm 集群可以有多个管理节点, 但只能有一个 Leader 。
工作节点
工作节点是任务执行节点, 管理节点将服务下发至工作节点执行。 管理节点默认也是工作节点。
下图是Swarm 集群模式中管理节点与工作节点之间的关系:
任务
任务(Task)是 Swarm 中的最小的调度单位,目前来说就是一个单一的容器。
服务
服务 (Service)是指一组任务的集合,服务定义了任务的属性。服务有两种模式:
- replicated service 按照一定规则在各个工作节点上运行指定个数的任务。
- global service 每个工作节点上运行一个任务
两种模式通过 docker serivce create
的 --mode
参数指定。
下图是容器, 任务,服务之间的关系: