一、说明
节点最低要求是要4台机器,manager至少2台机器(>1),要是一台挂掉一台,另外一台也会无法工作,所以至少3台manager
192.168.31.231 | manage1 | 管理节点 |
192.168.31.232 | manage2 | 管理节点 |
192.168.31.233 | worker1 | 管理节点 |
192.168.31.234 | worker2 | 管理节点 |
二、搭建集群
1、通过docker swarm --help可以看到很详细的说明
init 初始化一个集群
join 加入一个 集群
join-token 管理token
leave离开一个集群
update 更新集群
2、 运行:docker swarm init --advertise-addr 192.168.31.231
报如下错误,编辑 daemon.json 文件,将"live-restore"设置为false
Error response from daemon: --live-restore daemon configuration is incompatible with swarm mode
systemctl daemon-reload
systemctl restart docker
docker swarm init --advertise-addr 192.168.31.231
3、我们得到两个结果两个命令
(1)、加入swarm集群一个工作组worker
docker swarm join --token SWMTKN-1-5hzd0jl63m2p7h3vts3p7knt5qpn9ynk8vp5m3mlu8gmp0nr36-1tfvpypnzi0dvce0m89bnnn5q 192.168.31.231:2377
(2)、加入swarm集群一个工作组manager
docker swarm join-token manager(通过这个命令可以获取加入manage的token)
因为服务器有限,安排4台服务器,我们部署2manage+2workser
4、加入manage2
加入manage需要关闭防火墙,要不然会报如下错误
Error response from daemon: manager stopped: can't initialize raft node: rpc error: code = Unknown desc = could not connect to prospective new cluster member using its advertised address: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 192.168.31.232:2377: connect: no route to host"
5、加入worker1
6、加入worker2
7、通过docker node ls查看节点