如何快速搭建一个docker swarm集群?
本文档将告知你,如何快速的搭建一个docker swarm集群
1、环境准备
首先,说说需要的准备工作,需要具体以下3个条件:
- 3台linux主机,主机间可相互通信
- 安装并且已经运行docker服务
- 无端口限制(或者如下表,开放对应的通信端口)
如需开通特定的端口,见下表:
端口 |
作用 |
2377 |
和集群管理节点的通信端口 |
7946 |
节点间通信 |
4789 |
overylay网络流量端口 |
2、创建swarm集群
创建swarm集群的方法非常的简单,只需要在管理节点(自己定义哪个节点作为管理节点),执行如下的命令:
docker swarm init --advertise-addr 172.20.59.81
其中:172.20.59.81 这个IP地址是集群的管理节点的IP地址,后面的工作节点会通过这个IP和集群管理节点进行通信。
执行的过程:
[root@nccztsjb-node-07 ~]# docker swarm init --advertise-addr 172.20.59.81 Swarm initialized: current node (mjktd9is5xd8d4el2awrqby5k) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-42hb51u87llq666ma6mi2wo3rpusphttrscbp2fhueevmqdt1q-cx8r8if5qop444w98b12yfkz0 172.20.59.81:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. [root@nccztsjb-node-07 ~]#
到此,一个swarm集群就初始化完成了。
3、增加node节点
刚刚我们看到,在集群初始化之后,有如下的输出,如果要向swarm集群中增加worker节点,执行如下的命令:
docker swarm join --token SWMTKN-1-42hb51u87llq666ma6mi2wo3rpusphttrscbp2fhueevmqdt1q-cx8r8if5qop444w98b12yfkz0 172.20.59.81:2377
本次集群搭建,增加2个worker节点。
命令执行过程,类似下面的输出:
[root@nccztsjb-node-08 ~]# docker swarm join --token SWMTKN-1-42hb51u87llq666ma6mi2wo3rpusphttrscbp2fhueevmqdt1q-cx8r8if5qop444w98b12yfkz0 172.20.59.81:2377 This node joined a swarm as a worker.
当所有的节点都执行完该命令之后,在管理节点,执行如下的命令,查看节点信息:
[root@nccztsjb-node-07 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION mjktd9is5xd8d4el2awrqby5k * nccztsjb-node-07 Ready Active Leader 20.10.17 u87i9artgcnyki0osp9gvylu3 nccztsjb-node-08 Ready Active 20.10.17 z1x3ufsdxekrt6w5n37m7azfe nccztsjb-node-09 Ready Active 20.10.17
通过以上的信息可以看到,目前集群有3个节点,在MANAGER STATUS列中,值为“Leader”的是管理节点。
注意,如果这个加入集群的一串命令忘了,或者swarm集群运行了一段时间之后,再去加worker节点,命令到哪里去找?
非常的简单,只需要在manger节点,执行如下的命令:
docker swarm join-token worker
就会出现下面的信息,你也可以从中获取增加worker节点到swarm集群的命令
[root@nccztsjb-node-07 ~]# docker swarm join-token worker To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-42hb51u87llq666ma6mi2wo3rpusphttrscbp2fhueevmqdt1q-cx8r8if5qop444w98b12yfkz0 172.20.59.81:2377 [root@nccztsjb-node-07 ~]#
不过,还没有结束,那要是增加manager节点呢?
别急,也非常的简单,只需在manger节点,执行下面的命令:
docker swarm join-token manager
你也会获得将manager节点加入集群的命令
[root@nccztsjb-node-07 ~]# docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-42hb51u87llq666ma6mi2wo3rpusphttrscbp2fhueevmqdt1q-3dqs42ts8ewye2k938eive4uz 172.20.59.81:2377 [root@nccztsjb-node-07 ~]#
怎么样,创建一个swarm集群是不是相当的简单、容易。
不过,如何创建service,管理集群,节点,可不像创建集群这样,如此的简单······