将节点加入群体

预计阅读时间:3分钟

首次创建集群时,将单个Docker Engine置于集群模式。要充分利用群体模式,您可以将节点添加到群体:

  • 添加工作程序节点会增加容量。当您将服务部署到集群时,引擎会在可用节点上调度任务,无论它们是工作节点还是管理节点。将工作组添加到工作组时,将增加工作组的规模以处理任务,而不会影响经理筏的共识。
  • 管理器节点增加了容错能力。管理器节点执行集群的编排和集群管理功能。在管理者节点中,单个领导者节点负责执行编排任务。如果领导者节点发生故障,其余的管理者节点将选举新的领导者,并恢复编排和维护群状态。默认情况下,管理器节点还运行任务。

Docker引擎将根据您提供给命令的连接令牌加入群集docker swarm join。节点仅在加入时使用令牌。如果随后旋转令牌,它不会影响现有的群集节点。请参阅以群体模式运行Docker Engine

作为工作节点加入

要检索包括工作节点的加入令牌的加入命令,请在管理器节点上运行以下命令:

$ docker swarm join-token worker

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
    192.168.99.100:2377

从worker的输出中运行命令以加入swarm:

$ docker swarm join \
  --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
  192.168.99.100:2377

This node joined a swarm as a worker.

docker swarm join命令执行以下操作:

  • 将当前节点上的Docker Engine切换到群组模式。
  • 向管理器请求TLS证书。
  • 用机器主机名命名节点
  • 根据群组令牌,在管理器侦听地址处将当前节点加入群组。
  • 将当前节点设置为Active可用性,这意味着它可以从调度程序接收任务。
  • ingress覆盖网络扩展到当前节点。

作为经理节点加入

当您运行docker swarm join并传递管理器令牌时,Docker引擎将切换到集群模式,与工作程序相同。管理者节点也参加筏共识。新的节点应该是Reachable,但是现有的管理器仍然是群Leader

Docker建议每个集群三个或五个管理器节点以实现高可用性。由于群体模式管理器节点使用Raft共享数据,因此必须有奇数个管理器。只要有超过一半的管理器节点达到法定仲裁人数,群集就可以继续运行。

有关集群管理器和管理集群的更多详细信息,请参阅 管理和维护Docker引擎集群

要检索包括管理者节点的加入令牌的加入命令,请在管理者节点上运行以下命令:

$ docker swarm join-token manager

To add a manager to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
    192.168.99.100:2377

从新管理器节点上的输出运行命令,以将其加入群集:

$ docker swarm join \
  --token SWMTKN-1-61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
  192.168.99.100:2377

This node joined a swarm as a manager.

学到更多

引导群模式节点