(10)【Docker学习笔记】之 Swarm 集群管理

Docker Swarm简介及其原理

Docker Swarm的使用( 请确保主机已安装virtualbox )

1.创建swarm集群管理节点(manager)wor

创建docker机器:

$ docker-machine create -d virtualbox hengda-swarm-manager

初始化 swarm 集群,进行初始化的这台机器,就是集群的管理节点。

查看刚刚创建的虚拟机获得的IP:

$ docker-machine ip hengda-swarm-manager

$ docker-machine ssh hengda-swarm-manager
$ docker swarm init --advertise-addr 192.168.99.101 #这里的 IP 为创建机器时分配的 ip。

以上说明已经初始化成功。输出的下面这句,需要复制出来,增加节点时会用到:

docker swarm join --token SWMTKN-1-35hx80w5697p4rtw43ft7cd2ac7thy3yo6m3lal8mjgrq5s7bf-chbrvn53krg3qhrdd3rio6v7u 192.168.99.101:2377

2.创建swarm集群工作节点(worker)

下面创建两台机器,hengda-swarm-worker1 和 hengda-swarm-worker2

分别进入两台机器,指定前面建立的集群。这里要用到创建集群时提示的命令:

$ docker-machine ssh hengda-swarm-worker1

$ docker swarm join --token SWMTKN-1-35hx80w5697p4rtw43ft7cd2ac7thy3yo6m3lal8mjgrq5s7bf-chbrvn53krg3qhrdd3rio6v7u 192.168.99.101:2377

加入成功,则提示:This node joined a swarm as a worker.

$ docker-machine ssh hengda-swarm-worker2

$ docker swarm join --token SWMTKN-1-35hx80w5697p4rtw43ft7cd2ac7thy3yo6m3lal8mjgrq5s7bf-chbrvn53krg3qhrdd3rio6v7u 192.168.99.101:2377

3.查看集群信息

进入管理节点hengda-swarm-manager,执行:

$docker info

在集群信息中可以看到集群有3个节点和一个管理节点

4.部署服务到集群中( 注意:跟集群管理有关的任何操作,都时在管理节点上操作的 )

例子,在一个工作节点上创建一个服务helloworld,我们随机指派一个工作节点:

docker@hengda-swarm-manager:~$ docker service create --replicas 1 --name helloworld alpine ping docker.com

5.查看服务部署情况

查看helloworld服务在哪个节点运行:

docker@hengda-swarm-manager:~$ docker service ps helloworld 

查看helloworld部署的具体信息:

docker@hengda-swarm-manager:~$ docker service inspect --pretty helloworld 

6.扩展集群服务

我们将上述helloworld服务扩展到两个节点:

docker@hengda-swarm-manager:~$ docker service scale helloworld=2

7.删除服务

docker@hengda-swarm-manager:~$ docker service rm helloworld

8.滚动升级服务(本例介绍Redis版本如何滚动升级到更高版本)

创建一个3.0.6版本的Redis:

docker@hengda-swarm-manager:~$ docker service create --replicas 1 --name redis --update-delay 10s redis:3.0.6

滚动升级Redis:

docker@hengda-swarm-manager:~$ docker service update --image redis:3.0.7 redis

9.停止某个节点接收新的任务

查看所有的节点:

三个节点都是Active,表示可以接收新的任务。

停止节点hengda-swarm-worker1:

docker@hengda-swarm-manager:~$ docker node update --availability drain hengda-swarm-worker1

注意:hengda-swarm-worker1状态变为Drain。不会影响到集群的服务,只是hengda-swarm-worker1节点不再接收新的任务,集群的负载能力有所下降。

可以通过以下命令重新激活节点:

docker@hengda-swarm-manager:~$ docker node update --availability active hengda-swarm-worker1 

发布了58 篇原创文章 · 获赞 15 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/one312/article/details/103788762