Docker之swarm集群及其监控

172.25.254.1 manager
172.25.254.2 node
172.25.254.3 node
1.创建swarm集群
建立主节点
[root@server1 ~]# docker swarm init
在这里插入图片描述

Server2,server3运行主节点建立后提示的命令加入集群
[root@server2 ~]# docker swarm join --token SWMTKN-1-53q2xugi14mfc94933camiu8x2k6kc6522bpbdjcbr0fks6z08-4abk49345gga6l59wz51u5omh 172.25.254.1:2377
This node joined a swarm as a worker.

[root@server3 ~]# docker swarm join --token SWMTKN-1-53q2xugi14mfc94933camiu8x2k6kc6522bpbdjcbr0fks6z08-4abk49345gga6l59wz51u5omh 172.25.254.1:2377
This node joined a swarm as a worker.

主节点上查看节点状态
在这里插入图片描述

创建集群网络
在这里插入图片描述

[root@server1 ~]# docker load -i nginx.tar
[root@server2 ~]# docker load -i nginx.tar
[root@server3 ~]# docker load -i nginx.tar

在manager节点部署nginx服务,服务数量为3,使用nginx镜像

[root@server1 ~]# docker service create --name web --network ngxnet --publish 80:80 --replicas 3 nginx:1.16

在这里插入图片描述
查看web服务状态
在这里插入图片描述

拉伸服务数量为6,即每个节点2个工作页面,为了便于测试,将其缩减为为3
在这里插入图片描述
在这里插入图片描述
在节点添加相应访问文件

在这里插入图片描述

访问测试

在这里插入图片描述

Swarm监控
需要使用visualizer.tar镜像
导入镜像
[root@server1 ~]# docker load -i visualizer.tar
[root@server2 ~]# docker load -i visualizer.tar
[root@server3 ~]# docker load -i visualizer.tar

主节点运行容器

[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

在这里插入图片描述
在浏览器查看主节点的8080端口
在这里插入图片描述

搭建portainer可视化界面
在主节点导入portainer及其agent镜像,子节点导入agent镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编辑配置文件portainer-agent-stack.yml 并执行查看service服务列表
在这里插入图片描述

[root@server1 ~]# docker stack deploy --compose-file=portainer-agent-stack.yml portainer
Creating service portainer_agent
Creating service portainer_portainer

在这里插入图片描述

浏览器查看
初始用户为系统给定的admin,密码至少为8位(自己设置,设置完成后可以直接登陆)

在这里插入图片描述
登陆后界面
在这里插入图片描述
图形管理添加service服务‘nginx‘
在这里插入图片描述
查看服务nginx
在这里插入图片描述
拉伸服务数量为6个
在这里插入图片描述
刷新后查看
在这里插入图片描述
swarm以docker-coposecompose方式建立集群

[root@server1 test]# pwd
/mnt/test
[root@server1 test]# cat docker-compose.yml 
version: "3.7"
services:

  web:
    image: nginx:1.16
    ports:
      - "80:80"
    networks:
      - webnet
    volumes:
      - "webdata:/usr/share/nginx/html"
    deploy:
      replicas: 6##开启的服务数量
      resources:
        limits:
          cpus: "0.2"
          memory: 300M
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure


  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8080:8080"
    stop_grace_period: 1m30s
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]

networks:
  webnet:

volumes:
  webdata:

[root@server1 test]# docker stack deploy -c docker-compose.yml example##按照文件内容执行命令
Creating network example_webnet
Creating network example_default
Creating service example_web
Creating service example_visualizer

在这里插入图片描述

命令执行完后会有一定时间的缓冲,可能不能立刻查看到服务的端口映射和服务,可以等一会儿再进行查看

在这里插入图片描述
可以看到各服务的连接已经建立

修改各容器的发布文件
[root@server1 ~]# cat index.html
server1
[root@server1 test]# docker cp index.html example_web.1.6hasfkuecjh709m8ftw8g5y0x:/usr/share/nginx/html##倒入server1上运行的任意一个任务中即可,server2与server3同server1
[root@server2 ~]# cat index.html
server2
[root@server2 ~]# docker cp index.html example_web.2.k4oo1zg96houzva8g2nytspxc:/usr/share/nginx/html
[root@server3 ~]# cat index.html
server3
[root@server3 ~]# docker cp index.html example_web.3.ohakqo5slkku2v6q8d0bpmem2:/usr/share/nginx/html

测试:
在这里插入图片描述

查看8080端口
在这里插入图片描述

集群的更新
[root@server1 test]# vi docker-compose.yml

修改任务量为3
在这里插入图片描述

再次读取文件执行命令
可以看到数据更新
在这里插入图片描述
访问时发现每个节点之进行一次访问(负载均衡)
在这里插入图片描述
在图形界面查看可以看到只有三个人物在运行,说明图形界面也随之同步更新
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值