如何快速搭建一个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,管理集群,节点,可不像创建集群这样,如此的简单······

posted @ 2022-08-29 15:09  Zhai_David  阅读(401)  评论(0编辑  收藏  举报