环境概述:
使用五台服务器,分别为: node1
、 node2
、 node3
、 node4
、 data
,其中 node1
、 node3
和 data
作为管理节点,其他为工作节点
初始化第一个主节点
首先获取到这个节点的IP地址,可以是内网,也可以是公网,大部分情况都是使用内网,异地负载均衡会用到公网,但是都到达了异地均衡的程度,swarm已经不合适了,需要上k8s。
本笔记使用的内网ip为: 192.168.3.111
$ docker swarm init --advertise-addr 192.168.3.111 Swarm initialized: current node (bf8iwmgi16ncmeg9ld2rdxggx) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-0dx04acbupdxzi0qo31tqh0wlw7sxwel5xveunjmi4tzekmkfd-e98d7e77pq6t29pv8vfhsovo2 192.168.3.111:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.点击复制复制失败已复制
加入 worker 节点
将 docker swarm inti
命令执行结果依次输入到 node2
和 node4
中,即可将这两个服务器加入集群,并成为工作节点。
$ docker swarm join --token SWMTKN-1-0dx04acbupdxzi0qo31tqh0wlw7sxwel5xveunjmi4tzekmkfd-e98d7e77pq6t29pv8vfhsovo2 192.168.3.111:2377 This node joined a swarm as a worker.点击复制复制失败已复制
加入 manager 节点
首先在 node1
(第一个主节点)中获取管理节点的加入命令。
$ docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-0dx04acbupdxzi0qo31tqh0wlw7sxwel5xveunjmi4tzekmkfd-8y5u7phjafgfiyohdi3e8la4j 192.168.3.111:2377 点击复制复制失败已复制
接下来将加入命令依次输入到 node3
和 data
中,即可成功增加两个管理节点。
$ docker swarm join --token SWMTKN-1-0dx04acbupdxzi0qo31tqh0wlw7sxwel5xveunjmi4tzekmkfd-8y5u7phjafgfiyohdi3e8la4j 192.168.3.111:2377 This node joined a swarm as a manager.点击复制复制失败已复制
验证
$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION cyehvjd4u86awgsxfj21akmv3 data Ready Active Reachable 19.03.8 bf8iwmgi16ncmeg9ld2rdxggx * node1 Ready Active Leader 19.03.8 k2b50ogxzjw8ly5p2vd1audph node2 Ready Active 19.03.8 rl10np0alvvf0549s3ei1kmsh node3 Ready Active Reachable 19.03.8 o4s0v9imfmjrhzu78dyc45gr4 node4 Ready Ac