一.swam简介
Swram是Docker公司推出的官方容器集群平台,基于go语言实现,代码开源在 https://github.com/docker/swarm .2016年2月对架构进行重新设计,推出了v2版本,支持超过1千个节点。作为容器集群管理器,Swarm最大的优势之一就是100%支持标准的Docker API及工具(如Compose,docker-py等),Docker本身就可以很好地与Swarm进行集成。
二.Swam管理集群
1.部署集群
1.清理实验环境
删除server1、server2的容器




2.为server3安装docker(server1、server2已经安装好了)
[root@server1 ~]# scp -r docker server3: [root@server3 ~]# ls docker [root@server3 ~]# cd docker/ [root@server3 docker]# ls container-selinux-2.21-1.el7.noarch.rpm docker-ce-18.06.1.ce-3.el7.x86_64.rpm libsemanage-2.5-8.el7.x86_64.rpm libsemanage-python-2.5-8.el7.x86_64.rpm pigz-2.3.4-1.el7.x86_64.rpm policycoreutils-2.5-17.1.el7.x86_64.rpm policycoreutils-python-2.5-17.1.el7.x86_64.rpm repodata [root@server3 docker]# yum install *.rpm -y
讯享网


3.打开server3的docker服务
讯享网[root@server3 docker]# systemctl start docker.service
4.初始化server1(管理节点)的swarm集群
[root@server1 ~]# docker swarm init
5.查看server1的桥接,和网络信息
讯享网[root@server1 ~]# yum install bridge-utils.x86_64 -y 提供brctl命令 [root@server1 ~]# brctl show [root@server1 ~]# docker network ls

6.server2、server3加入集群
[root@server2 docker]# docker swarm join --token SWMTKN-1-5m3v8gviqk7r5e1zs9h8vsr16shhti2mp1o5qa23i7tgml08ut-bqrt2diawswa860mabblw4x 172.25.16.1:2377 [root@server2 docker]# docker swarm join --token SWMTKN-1-5m3v8gviqk7r5e1zs9h8vsr16shhti2mp1o5qa23i7tgml08ut-bqrt2diawswa860mabblw4x 172.25.16.1:2377
7.在管理节点查看到所有节点信息和状态

2.部署应用
1.server1中创建网络webnet,用于容器间通信。

讯享网[root@server1 ~]# docker service create --name web --network webnet --publish 80:80 --replicas 3 nginx:1.16 -replicas 3代表集群的个数为3;nginx后面要带版本号,默认是laster(可以修改标签) image nginx:1.16 could not be accessed on a registry to record its digest. Each node will access nginx:1.16 independently, possibly leading to different nodes running different versions of the image. qchyxe0yjm7005e8rb2l5f9fz overall progress: 3 out of 3 tasks 1/3: running 2/3: running 3/3: running verify: Service converged [root@server1 ~]#
2.查看服务列表
[root@server1 ~]# docker service ls [root@server1 ~]# docker service ps web



4.给server3加载nginx镜像

5.扩容(增加到六个负载)
讯享网[root@server1 ~]# docker service scale web=6 web scaled to 6 overall progress: 6 out of 6 tasks 1/6: running 2/6: running 3/6: running 4/6: running 5/6: running 6/6: running verify: Service converged
6.缩减到3个(够用就行)
[root@server1 ~]# docker service scale web=3 web scaled to 3 overall progress: 3 out of 3 tasks 1/3: running 2/3: running 3/3: running verify: Service converged
此时每个主机开启一个nginx服务

7.在三个虚拟机上编写nginx发布默认文件,并cp到容器内nginx的html下



测试:
物理机中访问三台虚拟机,成功访问并实现轮询
讯享网[root@foundation60 ~]# for i in {1..10};do curl 172.25.16.2/index.html;done
[root@foundation60 ~]# for i in {1..10};do curl 172.25.16.2/index.html;done
[root@foundation60 ~]# for i in {1..10};do curl 172.25.16.3/index.html;done


3.部署监控
1.在每个节点上导入visualizer.tar镜像
[root@server1 ~]# docker load -i visualizer.tar

讯享网[root@server2 ~]# docker load -i visualizer.tar

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

2.创建swarm的监控容器,使监控和docker连接起来
讯享网[root@server1 ~]# 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
3.查看容器viz和8080端口开启情况

测试:
浏览器输入:172.25.16.1:8080


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/45912.html