Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
44:ce:a9:46:24:60:d8:06:60:d9:df:5d:b4:33:1b:03 root@node1
The key's randomart image is:
+--[ RSA 2048]----+
|+==.. . .E.. |
|ooo. o + .... |
| . . o * .* |
| o + . * |
| o S . |
| . |
| |
| |
| |
+-----------------+
发布sshkey到各个节点
[root@node1 ~]# ssh-copy-id node1
[root@node1 ~]# ssh-copy-id node2
[root@node1 ~]# ssh-copy-id node3 测试密钥登录
[root@node1 ~]# for N in $(seq 1 3); do ssh node$N hostname; done ; node1
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
查看端口号监听情况
[root@node1 ~]# netstat -anpt | grep docker tcp 0 0 192.168.1.107:32853 192.168.1.107:2377 ESTABLISHED 6259/dockerd-curren
Swarm: active #活跃
NodeID: 9boy0msaa19b67z4ssp8yc32d Is Manager: true#管理角色
ClusterID: 4536wglalec5c489ul0gd8dhn
Managers: 1
Nodes: 1
Orchestration:
Task History Retention Limit: 5
查看swarm集群node列表
[root@node1 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
方法二: 如果你不记得方法一提示的加入swarm集群的命令和密钥可以使用如下方式查看worker节点和manager节点的加入命令
本次使用:将node2和node3使用worker节点方式加入swarm集群
首先在node1上面查询集群的命令和密钥
[root@node1 ~]# docker swarm join-token worker To add a worker to this swarm, run the following command:
docker swarm join \ --token SWMTKN-1-2fmdoue8fnqf26yp5m3quoxav33nxrjwbogwhcftpnlpjgoy16-7c3tgluhurunkdy9y9fc0ei65 \ 192.168.1.107:2377
在node2和node3上面执行(直接将红色代码复制粘贴到节点服务器即可)
[root@node2 ~]#docker swarm join \
> --token SWMTKN-1-2fmdoue8fnqf26yp5m3quoxav33nxrjwbogwhcftpnlpjgoy16-7c3tgluhurunkdy9y9fc0ei65 \
> 192.168.1.107:2377
This node joined a swarm as a worker.
[root@node3 ~]# docker swarm join \
> --token SWMTKN-1-2fmdoue8fnqf26yp5m3quoxav33nxrjwbogwhcftpnlpjgoy16-7c3tgluhurunkdy9y9fc0ei65 \
> 192.168.1.107:2377
This node joined a swarm as a worker.
如果想让服务器以manager节点加入swar集群在node1上面查询(直接将红色代码复制粘贴到节点服务器即可)
[root@node1 ~]# docker swarm join-token manager To add a manager to this swarm, run the following command:
再次检查集群节点列表, 我们可以看到所有的服务器都已经加入swarm集群了
[root@node1 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
8s3cxo00phorkfjb1qhr9iu05 node2 Ready Active
9boy0msaa19b67z4ssp8yc32d * node1 Ready Active Leader
cigtp3x969rcsjzlh5cp2g7s7 node3 Ready Active
不过现在集群只有一个manager节点node1, 为了swarm集群的高可用,和避免单点故障. 我们希望建立多个manager节点集群.
只需要通过如下命令, 将node2worker节点提升成为manager节点:
[root@node1 ~]# docker node promote node2 Node node2 promoted to a manager in the swarm.
[root@node1 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
8s3cxo00phorkfjb1qhr9iu05 node2 Ready Active Reachable
9boy0msaa19b67z4ssp8yc32d * node1 Ready Active Leader
cigtp3x969rcsjzlh5cp2g7s7 node3 Ready Active
查看node2的docker info
[root@node2~]# docker info 查看主要内容
Swarm: active
NodeID: 8s3cxo00phorkfjb1qhr9iu05
Is Manager: true
ClusterID: 4536wglalec5c489ul0gd8dhn
Managers: 2
Nodes: 3
查看node3的docker info
[root@node3 ~]# docker info 查看主要内容
Swarm: active
NodeID: cigtp3x969rcsjzlh5cp2g7s7
Is Manager: false
Node Address: 192.168.1.130
现在我们可以看到, 已经有2个manager节点了, 一个Leader节点, 一个Reachable节点. 现在你也可以在node2上面管理整个swarm集群.
使用node2让node3下线
查看ID
[root@node2 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
8s3cxo00phorkfjb1qhr9iu05 * node2 Ready Active Reachable
9boy0msaa19b67z4ssp8yc32d node1 Ready Active Leader
cigtp3x969rcsjzlh5cp2g7s7 node3 Ready Active
使用命令让node3下线
[root@node2 ~]# docker node update --availability drain cigtp3x969rcsjzlh5cp2g7s7 cigtp3x969rcsjzlh5cp2g7s7
[root@node2 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
8s3cxo00phorkfjb1qhr9iu05 * node2 Ready Active Reachable
9boy0msaa19b67z4ssp8yc32d node1 Ready Active Leader
cigtp3x969rcsjzlh5cp2g7s7 node3 Ready Drain
使用命令让node3上线
[root@node2 ~]# docker node update --availability active cigtp3x969rcsjzlh5cp2g7s7 cigtp3x969rcsjzlh5cp2g7s7
[root@node2 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS