2025年Swarm管理Docker集群

Swarm管理Docker集群一 swam 简介 Swram 是 Docker 公司推出的官方容器集群平台 基于 go 语言实现 代码开源在 https github com docker swarm 2016 年 2 月对架构进行重新设计 推出了 v2 版本 支持超过 1 千个节点 作为容器集群管理器 Swarm 最大的优势之一就是 100 支持标准的 Docker

大家好,我是讯享网,很高兴认识大家。

一.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

在这里插入图片描述

小讯
上一篇 2025-01-28 14:40
下一篇 2025-03-17 11:11

相关推荐

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