将节点加入 Swarm
目录
初次创建 Swarm 时,您会将单个 Docker Engine 置于 Swarm 模式。要充分利用 Swarm 模式,您可以向 Swarm 添加节点。
- 添加工作节点可增加容量。当您向 Swarm 部署服务时,Engine 会在可用节点(无论是工作节点还是管理节点)上调度任务。当您向 Swarm 添加工作节点时,您可以扩大 Swarm 的规模来处理任务,而不会影响管理节点的 Raft 共识。
- 管理节点增加容错能力。管理节点执行 Swarm 的编排和集群管理功能。在管理节点中,单个主导节点负责执行编排任务。如果主导节点宕机,剩余的管理节点会选举一个新的主导节点,并恢复 Swarm 状态的编排和维护。默认情况下,管理节点也运行任务。
Docker Engine 根据您提供给 docker swarm join
命令的 join-token 加入 Swarm。节点仅在加入时使用该令牌。如果您后续轮换令牌,则不会影响现有的 Swarm 节点。请参阅 在 Swarm 模式下运行 Docker Engine。
作为工作节点加入
要检索包含用于工作节点的 join token 的加入命令,请在管理节点上运行以下命令:
$ 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
在工作节点上运行输出中的命令以加入 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 切换到 Swarm 模式。
- 向管理节点请求 TLS 证书。
- 使用机器主机名命名节点。
- 根据 Swarm token,将当前节点加入到管理节点的监听地址上的 Swarm 中。
- 将当前节点设置为
Active
可用状态,这意味着它可以接收来自调度器的任务。 - 将
ingress
覆盖网络扩展到当前节点。
作为管理节点加入
当您运行 docker swarm join
并传递管理节点 token 时,Docker Engine 会像工作节点一样切换到 Swarm 模式。管理节点也参与 raft 共识。新节点应处于 Reachable
(可达)状态,但现有管理节点仍然是 Swarm 的 Leader
(主导)。
Docker 建议每个集群拥有三个或五个管理节点以实现高可用性。因为 Swarm 模式的管理节点使用 Raft 共享数据,所以管理节点的数量必须是奇数。只要管理节点数量的一半以上(即多数)可用,Swarm 就可以继续运行。
有关 Swarm 管理节点和管理 Swarm 的更多详细信息,请参阅 管理和维护 Docker Engines Swarm。
要检索包含用于管理节点的 join token 的加入命令,请在管理节点上运行以下命令:
$ 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
在新的管理节点上运行输出中的命令以将其加入 Swarm。
$ docker swarm join \
--token SWMTKN-1-61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
192.168.99.100:2377
This node joined a swarm as a manager.
了解更多
swarm join
命令行参考- Swarm 模式教程