将节点加入群集(引擎) | Join nodes to a swarm (Engine)
将节点加入群中
当你第一次创建 swarm 时,你将一个 Docker Engine(引擎)放入 swarm 模式。要充分利用群模式,您可以向群添加节点:
- 添加工作节点会增加容量。将服务部署到群集时,引擎会调度可用节点上的任务,无论它们是工作节点还是管理节点。当您将工人添加到群体中时,您可以增加群体的规模以处理任务,而不会影响经理人团队的一致性。
- 管理器节点增加了容错能力。Manager 节点为群体执行编排和群集管理功能。在管理器节点中,单个领导者节点执行编排任务。如果一个领导者节点出现故障,其余的管理者节点会选举一个新的领导者并恢复协调和维护群体状态。默认情况下,管理节点也运行任务。
在将节点添加到群集之前,必须在主机上安装 Docker Engine 1.12或更高版本。
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 上的输出运行命令加入群集:
$ 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 引擎切换到群集模式。
- 向经理(manager)申请 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.
了解更多
swarm join
命令行参考
- Swarm 模式教程