Docker-swarm
-
准备三个主机:192.168.139.30;192.168.139.32;192.168.139.34,都安装好docker
1.1)初始化
[root@master-a src]# docker swarm --help
`初始化集群`
[root@master-a src]# docker swarm init --advertise-addr 192.168.139.30
`查看token`
[root@master-a src]# docker swarm join-token worker
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-4vbnupm12d6b4y33c80lcz9znj9xicbk9qznin67xeiya8oyhh-40jn9xn8g5edp852lgm39gy4d 192.168.139.30:2377
1.2)添加节点
`将192.168.139.32;192.168.139.33加入到192.168.139.30`
[root@master-b src]# docker swarm join --token SWMTKN-1-4vbnupm12d6b4y33c80lcz9znj9xicbk9qznin67xeiya8oyhh-40jn9xn8g5edp852lgm39gy4d 192.168.139.30:2377
[root@master-c src]# docker swarm join --token SWMTKN-1-4vbnupm12d6b4y33c80lcz9znj9xicbk9qznin67xeiya8oyhh-40jn9xn8g5edp852lgm39gy4d 192.168.139.30:2377
1.3)查看加入的节点
`在192.168.139.30主机查看加入的节点`
[root@master-a src]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
ry3f66t2qhv9x7ue5ys1ljsqa * master-a Ready Active Leader 19.03.15
nzz1kolk8dcpzsuc86608eaz3 master-b Ready Active 19.03.15
p9jkem6q9nv0qmzk6xw48pjni master-c Ready Active 19.03.15
1.4)添加label
[root@master-a src]# docker node update --label-add name=swarm-master-1 master-a
master-a
[root@master-a src]# docker node update --label-add name=swarm-master-2 master-b
master-b
[root@master-a src]# docker node update --label-add name=swarm-master-2 master-c
master-c
1.5)将其他节点提升为manager角色以实现高可用:
[root@master-a src]# docker node promote master-b
Node master-b promoted to a manager in the swarm.
[root@master-a src]# docker node promote master-c
Node master-c promoted to a manager in the swarm.
`查看`
[root@master-a src]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
ry3f66t2qhv9x7ue5ys1ljsqa * master-a Ready Active Leader 19.03.15
nzz1kolk8dcpzsuc86608eaz3 master-b Ready Active Reachable 19.03.15
p9jkem6q9nv0qmzk6xw48pjni master-c Ready Active Reachable 19.03.15
1.6)查看node信息:
[root@master-a src]# docker node inspect master-a
.........
"Status": {
"State": "ready",
"Addr": "192.168.139.30"
},
"ManagerStatus": {
"Leader": true,
"Reachability": "reachable",
"Addr": "192.168.139.30:2377"
}
}
]
1.7)创建网络:
[root@master-a src]# docker network create -d overlay --subnet=10.220.0.0/21 --gateway=10.220.0.1 --attachable jie-net
`查看网络`
[root@master-a src]# docker network ls
NETWORK ID NAME DRIVER SCOPE
0649759f5d78 bridge bridge local
6c5f7e0c734d docker_gwbridge bridge local
04bfc3f68ba4 host host local
u3f4k0p09jt0 ingress overlay swarm
6vz8z2pcreuo jie-net overlay swarm
1afb83bbbff1 none null local
1.8)创建容器测试
`拉取一个官方镜像测试`
[root@master-a src]# docker pull nginx:1.18-alpine
[root@master-b src]# docker pull nginx:1.18-alpine
[root@master-c src]# docker pull nginx:1.18-alpine
`创建nginx容器`
[root@master-a src]# docker service create --replicas 2 -p 8888:80 --network jie-net --name nginx nginx:1.18-alpine
rkofhmfwnv1hcozj27qdbr5aq
overall progress: 2 out of 2 tasks
1/2: running [==================================================>]
2/2: running [==================================================>]
verify: Service converged
`查看service`
[root@master-a src]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
rkofhmfwnv1h nginx replicated 2/2 nginx:1.18-alpine *:8888->80/tcp
"可以访问集群里面的任何一个IP"
1.9)验证容器状态
[root@master-a src]# docker service ps rkofhmfwnv1h
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
j27jj8k04psm nginx.1 nginx:1.18-alpine master-b Running Running 5 minutes ago
4j5zqbfe6k7f nginx.2 nginx:1.18-alpine master-a Running Running 5 minutes ago

文章评论