1、docker swarm join 简介
Docker Swarm 是 Docker 提供的用于创建和管理容器集群的工具。它允许您将多个 Docker 主机组成一个集群,并使用 Swarm 模式部署和管理容器应用程序。
docker swarm join
命令用于将节点加入到 Docker 集群中。节点可以加入集群作为工作节点(worker)或管理节点(manager)。加入集群需要使用正确的令牌,并提供管理节点的地址。
此命令与Swarm orchestrator一起工作。
加入一个节点到集群中。根据您使用--token标志传递的令牌,节点作为管理节点或工作节点加入。如果您传递一个管理器令牌,该节点将作为管理器进行连接。如果你传递了一个工作令牌,这个节点就会作为工作节点加入。
注意:这是一个集群管理命令,必须在 swarm 管理节点上执行。有关管理节点和工作节点的详细信息,请参阅文档中的 Swarm 模式部分。
参考文档:https://docs.docker.com/engine/reference/commandline/swarm_join/
2、docker swarm join 语法
docker swarm join [OPTIONS] HOST:PORT
3、docker swarm join 命令
1)加入一个管理节点到集群
下面的示例演示如何使用管理令牌加入一个管理节点。
docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2 192.168.99.121:2377 This node joined a swarm as a manager. docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS dkp8vy1dq1kxleu9g4u78tlag * manager2 Ready Active Reachable dvfxp4zseq4s0rih1selh0d20 manager1 Ready Active Leader
一个集群最多应该有3-7个管理节点,因为大多数管理节点必须可用才能让集群正常工作。不打算参与管理节点群的节点应该以工作节点的身份加入。管理节点应该是稳定的主机,并拥有静态IP地址。
2)加入一个工作节点到集群
下面的示例演示如何使用工作令牌加入一个工作节点。
docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx 192.168.99.121:2377 This node joined a swarm as a worker. docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 7ln70fl22uw2dvjn2ft53m3q5 worker2 Ready Active dkp8vy1dq1kxleu9g4u78tlag worker1 Ready Active Reachable dvfxp4zseq4s0rih1selh0d20 * manager1 Ready Active Leader
3)--listen-addr value
如果节点是管理节点,它将在此地址上监听入站的集群管理流量。默认情况下,它会监听0.0.0.0:2377
。也可以指定一个网络接口来监听该接口的地址,例如 --listen-addr eth0:2377
。
指定端口是可选的。如果值是一个裸露的IP地址或接口名称,则会使用默认端口2377
。
在加入一个已存在的集群时,通常不需要使用此标志。
4)--advertise-addr value
此标志指定将向集群中的其他成员广告的地址以供API访问。如果未指定,Docker将检查系统是否有一个单一的IP地址,并使用该IP地址与监听端口(参见 --listen-addr)。如果系统具有多个IP地址,则必须指定 --advertise-addr,以便选择正确的地址用于管理节点之间的通信和覆盖网络。
也可以指定一个网络接口来广告该接口的地址,例如 --advertise-addr eth0:2377
。
指定端口是可选的。如果值是一个裸露的IP地址或接口名称,则会使用默认端口2377。
在加入一个已存在的集群时,通常不需要使用此标志。如果通过负载均衡器加入新节点,应该使用此标志确保节点广告自己的IP地址而不是负载均衡器的IP地址。
5)--data-path-addr
此标志指定全局范围网络驱动程序将向其他节点发布的地址,以便访问在该节点上运行的容器。使用此参数,可以将容器的数据流量与集群的管理流量分离开来。如果未指定,Docker将使用与广告地址相同的IP地址或接口。
6)--token string
加入集群所需的秘密值
7)--availability
此标志指定节点在加入主节点时的可用性。可能的可用性值为active、pause或drain。
这个标志在某些情况下很有用。例如,一个集群可能希望有专门的管理节点,而不是作为工作节点提供服务。
可以通过将 --availability=drain
传递给 docker swarm join
来实现这一点。
4、命令选项
选项 | 默认值 | 描述 |
--advertise-addr | 广告地址(格式: | |
--availability | active | 节点的可用性(active, pause, drain) |
--data-path-addr | 用于数据路径流量的地址或接口(格式: | |
--listen-addr | 0.0.0.0:2377 | 监听地址(格式: |
--token | 用于加入集群的令牌 |
5、子命令
命令 | 描述 |
docker swarm ca | 显示和轮换根CA |
docker swarm init | 初始化一个swarm |
docker swarm join | 作为节点和/或管理者加入一个swarm |
docker swarm join-token | 管理加入令牌 |
docker swarm leave | 离开swarm |
docker swarm unlock | 解锁swarm |
docker swarm unlock-key | 管理解锁密钥 |
docker swarm update | 更新swarm |