主機名(角色) | IP |
---|---|
swarm-manager | 172.16.100.20 |
swarm-node1 | 172.16.100.22 |
swarm-node2 | 172.16.100.22 |
加入swarm mode集羣后不容許修改主機名
node
[root@swarm-manager ~]# docker swarm init --advertise-addr 172.16.100.20 Swarm initialized: current node (sc21k9597zasfjaf6cfpuyvy6) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-10rnutvx6cpja7wv88k7ydywpvjjz1xsj88on00s43te740xca-1pwd9juzgpwnxlxne7p2g93va 172.16.100.20:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
[root@swarm-manager ~]# docker info |grep -A5 Swarm Swarm: active NodeID: pg6fteetxsezu2ygyd3b0joye Is Manager: true ClusterID: yb5c85p7o054sxp1hb8ieqw43 Managers: 1 Nodes: 1 [root@swarm-manager ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS pg6fteetxsezu2ygyd3b0joye * swarm-manager Ready Active Leader [root@swarm-manager ~]# netstat -lntp|grep docker tcp6 0 0 :::2377 :::* LISTEN 1249/dockerd tcp6 0 0 :::7946 :::* LISTEN 1249/dockerd
swarm mode集羣有manager和worker節點,可經過
docker swarm join-token [manager|worker]
命令獲取節點添加命令docker
[root@swarm-manager ~]# docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-5vp5axn28a2cbrtzxlirktbhpnluayacuw81zqacooe3ooe2o3-6ys543fe4zkeagkoaacgaqe3e 172.16.100.20:2377 [root@swarm-manager ~]# docker swarm join-token worker To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-5vp5axn28a2cbrtzxlirktbhpnluayacuw81zqacooe3ooe2o3-64gphy50682jszwc19nn0onpc 172.16.100.20:2377
分別在node1和node2節點上執行以下的docker swarm join
命令添加worker節點網絡
[root@swarm-node1 ~]# docker swarm join --token SWMTKN-1-5vp5axn28a2cbrtzxlirktbhpnluayacuw81zqacooe3ooe2o3-64gphy50682jszwc19nn0onpc 172.16.100.20:2377
[root@swarm-manager ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS lati2179dcwgkvvkc0qcieoim swarm-node2 Ready Active pg6fteetxsezu2ygyd3b0joye * swarm-manager Ready Active Leader y83k6khc3vxmch1qd3j8kl4ak swarm-node1 Ready Active
[root@swarm-manager ~]# docker node promote swarm-node1 swarm-node2 Node swarm-node1 promoted to a manager in the swarm. Node swarm-node2 promoted to a manager in the swarm. # docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS lati2179dcwgkvvkc0qcieoim swarm-node2 Ready Active Reachable pg6fteetxsezu2ygyd3b0joye * swarm-manager Ready Active Leader y83k6khc3vxmch1qd3j8kl4ak swarm-node1 Ready Active Reachable
[root@swarm-manager ~]# docker node demote swarm-node1 swarm-node2 Manager swarm-node1 demoted in the swarm. Manager swarm-node2 demoted in the swarm. [root@swarm-manager ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS lati2179dcwgkvvkc0qcieoim swarm-node2 Ready Active pg6fteetxsezu2ygyd3b0joye * swarm-manager Ready Active Leader y83k6khc3vxmch1qd3j8kl4ak swarm-node1 Ready Active
移除節點時須要先在worker節點上執行
docker swarm leave
命令將節點狀態設爲Down
後,在manager節點上執行docker node rm <node-name>
移除。若是要移除manager節點,不建議使用--force
強制移除,而應該先進行降級後再移除。koa
[root@swarm-manager ~]# docker swarm leave Error response from daemon: You are attempting to leave the swarm on a node that is participating as a manager. Removing the last manager erases all current state of the swarm. Use `--force` to ignore this message. [root@swarm-manager ~]# docker node rm swarm-node1 Error response from daemon: rpc error: code = 9 desc = node y83k6khc3vxmch1qd3j8kl4ak is not down and can't be removed
[root@swarm-node2 ~]# docker swarm leave Node left the swarm. [root@swarm-manager ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS lati2179dcwgkvvkc0qcieoim swarm-node2 Down Active pg6fteetxsezu2ygyd3b0joye * swarm-manager Ready Active Leader y83k6khc3vxmch1qd3j8kl4ak swarm-node1 Ready Active [root@swarm-manager ~]# docker node rm swarm-node2 swarm-node2 [root@swarm-manager ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS pg6fteetxsezu2ygyd3b0joye * swarm-manager Ready Active Leader y83k6khc3vxmch1qd3j8kl4ak swarm-node1 Ready Active