您的位置:首页 > 运维架构 > Docker

docker swarm集群

2019-06-05 21:38 639 查看

实验环境:

集群节点 ip
server3 172.25.26.3
server4 172.25.26.4
server5 172.25.26.5

swarm集群的作用

通过把多个Docker Engine聚集在一起,形成一个大的docker-engine,对外提供容器的集群服务。同时这个集群对外提供Swarm API,用户可以像使用Docker Engine一样使用Docker集群。

swarm集群的创建

[root@server3 images]# docker swarm init


在server3初始化集群。

[root@server4 ~]# docker swarm join --token SWMTKN- 1-26txauvv56seca2skkqoe7gfkg4d5yjvicbpc0sqlljr0c0kd9-bn1wxwf3xb5vvqti119fnw7r7 172.25.26.3:2377

将server3初始化时出来的结果在server4和server5执行,将server4和server5加入集群,作为节点。

[root@server3 images]# docker node ls


查看集群节点,三个节点都起来了。

[root@server3 ~]# docker network create -d overlay webnet


创建一个私有网络。

[root@server3 ~]# docker service create --name web --network webnet --publish 80:80 --replicas 3 nginx


创建3个搭建nginx的容器,注意在所有节点上都要有nginx的镜像,l拉起的容器将平均分到3个节点上。

[root@server3 ~]# docker service ps web


可以看到,在每一个节点都打开了一个容器。

[root@server3 ~]# docker service scale web=9


拉伸,将容器数量拉到9个,这样,每个节点应该有开了3个容器。

也可以在节点进行查看

生成了3个新容器。

[root@server3 ~]# docker service scale web=3


同样,可以对拉起的容器进行缩减,这里缩减到3个,只需要修改一下数字就可以了。

这样在容器内搭建的nginx服务是可以实现负载均衡的,这个是搭建集群时自动就布置好的,不需要手动布置,现在就可以测试一下,只要在每个容器内准备测试页就可以了。

[root@server3 ~]# echo server3 > index.html
[root@server3 ~]# docker cp index.html web.3.7tnf23oi2iqzkha3sexg6pod5:/usr/share/nginx/html
[root@server4 ~]# echo server4 > index.html
[root@server4 ~]# docker cp index.html web.1.y9lc7045i7vbp7sypozp5zg52:/usr/share/nginx/html
[root@server5 ~]# echo server5 > index.html
[root@server5 ~]# docker cp index.html web.2.y52ogmk6t86ksepk02h4yewj7:/usr/share/nginx/html

设置测试页。

访问server3十次,可以发现访问是轮循的实现了负载均衡。
之后如果在拉进新的容器,也在这个负载均衡的集群内。

docker集群的监控

[root@server3 images]# docker load -i visualizer.tar

首先,在所有节点导入这个镜像。

[root@server3 images]# docker service create   --name=viz  \
--publish=8080:8080/tcp   --constraint=node.role==manager  \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock   dockersamples/visualizer

打开监控
在浏览器输入ip:8080进行测试。

这里可以查看到所有容器的信息

[root@server3 images]# docker service update --image httpd --update-delay 5s --update-parallelism 5 web


当容器内的服务更新时,监控也会发生变化。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: