docker三剑客之docker-swarm

扯淡

        集群模式是指在DOCKER引擎中嵌入的集群管理和编排特征。当你初始化一个新的集群或加入一个集群的节点时,DOCKER引擎以集群模式运行。

        为什么需要集群?为了解决单机瓶颈,从一到多,部署多份,从而构成“集群”。从单机到集群,代码基本无需修改,仅仅是服务器的扩容,简单直接的提升了服务器的处理能力。

        参考文档:https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/

集群配置

1,先创建3台主机,用其中的一台主机作为Leader,初始化swarm集群,并管理节点。

查看创建好的3台主机,我这里的命名为:h1 / h2 / h3

输出:
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
h1 – xhyve Running tcp://192.168.64.5:2376 v18.06.1-ce
h2 – xhyve Running tcp://192.168.64.6:2376 v18.06.1-ce
h3 – xhyve Running tcp://192.168.64.7:2376 v18.06.1-ce

2,登录h1主机,初始化swarm集群

输出:
Swarm initialized: current node (h78ft6qqs27xxi1af9lw7w4tk) is now a manager.

To add a worker to this swarm, run the following command:

docker swarm join –token SWMTKN-1-2lk16l2cjvporghr3g1kg6orjrotq682axu2yc0kjm5aepvois-br6bpyng0bvqg2jqcn4ud3cvs 192.168.64.5:2377

To add a manager to this swarm, run ‘docker swarm join-token manager’ and follow the instructions.

3,分别登录h2h3,执行上面输出的join命令的添加到swarm集群

输出:
This node joined a swarm as a worker.

后续,如果需要查看添加节点的token和命令,可以使用如下命令:

4,重新登录h1,查看集群节点情况,Leader表示主节点

输出:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
h78ft6qqs27xxi1af9lw7w4tk * h1 Ready Active Leader 18.06.1-ce
ifo2uegzz9s1619t72gnz64yk h2 Ready Active 18.06.1-ce
fysd1bc0knxvgkk53604joje2 h3 Ready Active 18.06.1-ce

5,移除集群节点

a,在需要退出的节点上操作下面命令down掉节点,如需强制退出,可添加参数“-f”,如:

b,到主节点上“docker node ls”列出所有节点,根据id使用命令“docker node rm <id>”删除节点即可,如:

 

服务部署与扩容

1,登录主机,执行下面的命令部署nginx服务

 

2,查看服务部署情况,可以使用下面两个命令

输出:
ID NAME MODE REPLICAS IMAGE PORTS
26fd9ljhbjsp nginx replicated 3/3 nginx:1.15-alpine *:80->80/tcp

输出:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
ckoct5gcb67u nginx.1 nginx:1.15-alpine h1 Running Running 2 minutes ago
eu8d9bohemqo nginx.2 nginx:1.15-alpine h2 Running Running 14 minutes ago
4qvcvdgyniq4 nginx.3 nginx:1.15-alpine h3 Running Running 2 minutes ago

浏览器输入任意一个节点的地址都可以进行访问,如“http://192.168.64.5”

2,服务扩容,我们通过scale命令可以针对集群的服务进行扩容和缩减,控制的数量为当前集群的指定服务数量,一切都变的那么自然,可控。

 

3,登录管理节点,添加监控,使我们更直接的管理节点和服务,这里我们选用的是Docker Swarm Visualizer,简单直观。

 

监控部署后,我们就可以通过浏览器访问地址:“http://192.168.64.7:8080/”,查看可视化的节点运行情况了,如下图:

常用命令

docker swarm

docker swarm init #初始化集群
docker swarm join-token worker #查看工作节点的 token
docker swarm join-token manager #查看管理节点的 token
docker swarm join #加入集群中

docker node

docker node ls #查看所有集群节点
docker node rm #删除某个节点(-f强制删除)
docker node inspect #查看节点详情
docker node demote #节点降级,由管理节点降级为工作节点
docker node promote #节点升级,由工作节点升级为管理节点
docker node update #更新节点
docker node ps #查看节点中的 Task 任务

docker service

docker service create #部署服务
docker service inspect #查看服务详情
docker service logs #产看某个服务日志
docker service ls #查看所有服务详情
docker service rm #删除某个服务(-f强制删除)
docker service scale #设置某个服务个数
docker service update #更新某个服务


guolin

guolin

相信世界,向往美好,记录成长过程,分享个人心得,充实平凡生活。 网站信条:因为喜欢,所以热爱。

发表评论

电子邮件地址不会被公开。 必填项已用*标注