1、docker swarm 节点部署
- 设备准备:(机器环境Centos:7)
- IP:10.0.0.5 主机名:manager_master 角色:swarm manager
- IP:10.0.0.3 主机名:node1 角色:swarm node
- IP:10.0.0.4 主机名:node2 角色:swarm node
1、修改主机名(目的为了区别服务)
#10.0.0.5
[root@manager43 ~]# hostnamectl set-hostname manager
[root@manager43 ~]# hostname
manager
#10.0.0.3
[root@node188 ~]# hostnamectl set-hostname node1
[root@node188 ~]# hostname
node1
#10.0.0.4
[root@node139 ~]# hostnamectl set-hostname node2
[root@node139 ~]# hostname
node2
10.0.0.5上创建管理节点
[root@manager ~]# docker swarm init --advertise-addr 10.0.0.5
Swarm initialized: current node (sny09dfyh2kj505yt0mmwyckz) is now a manager.
To add a worker to this swarm, run the following command:
## 这就是添加节点的方式(要保存初始化后token,因为在节点加入时要使用token作为通讯的密钥)
docker swarm join \
--token SWMTKN-1-4d5sxhgpkdt6kl29v898epj5fovsauhrqtkweqsva1tp8tpr93-15alqx0s9u5rcn34oc4vs5cyx \
10.0.0.5:2377
上面命令执行后,该机器自动加入到swarm集群。这个会创建一个集群token,获取全球唯一的 token,作为集群唯一标识。后续将其他节点加入集群都会用到这个token值。
其中,--advertise-addr参数表示其它swarm中的worker节点使用此ip地址与manager联系。命令的输出包含了其它节点如何加入集群的命令。
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
其他工作节点使用
docker swarm join \
--token SWMTKN-1-4d5sxhgpkdt6kl29v898epj5fovsauhrqtkweqsva1tp8tpr93-15alqx0s9u5rcn34oc4vs5cyx \
10.0.0.5:2377
使用docker node ls查看节点
[root@manager ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
sny09dfyh2kj505yt0mmwyckz * localhost.localdomain Ready Active Leader
ws08rdydi0pt2thtse08hd13i node139 Ready Active
z8qfl3bw2dw7mbw60tun9ax25 node139 Ready Active
使用docker info查看节点数
[root@manager ~]# docker info
Containers: 4
Running: 1
Paused: 0
Stopped: 3
Images: 13
Server Version: 1.13.1
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: journald
Cgroup Driver: systemd
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Swarm: active
NodeID: yob4p2n79xk365mzsa6z3gf0v
Is Manager: true
ClusterID: l2dyp6z795b67go9q0tu70ovi
Managers: 1
Nodes: 3
.....
[root@manager ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
bd49e839ac66 bridge bridge local
37ede1911520 docker_gwbridge bridge local
0cec662c6972 host host local
1z00r6fmdei4 ingress overlay swarm
d90db99ea6b6 none null local
#这里swarm中默认使用overlay网络
报错:
Error response from daemon: This node is already part of a swarm. Use "docker swarm leave" to leave this swarm and join another one.
使用docker swarm leave -f强制脱离节点