Docker 集群 图形化显示 Visualizer

时间:2024-05-21 20:34:24

今天无意中看到了这个东西Visualizer,功能是可以可视化的去观察展示swarm集群里面个节点的信息情况,使用起来很方便。这里整理一下:

我先部署一个三节点的swarm集群:

Docker 集群 图形化显示 Visualizer

然后在整个简单的nginx,开7个服务,让三个node节点都跑起来。

docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine

Docker 集群 图形化显示 Visualizer

 

OK,nginx在集群上跑起来了,而且每个节点都可以访问。

然后直接在manager节点上安装Visualizer

docker run -d -p 8081:8080 -v /var/run/docker.sock:/var/run/docker.sock --name visua dockersamples/visualizer:latest

访问http://192.168.0.102:8081/  (IP根据自己实际情况调整,注意是manager节点ip,不能是node节点ip)

Docker 集群 图形化显示 Visualizer

 

第二种姿势是直接加在新项目里,加到docker-compose.yml里面

先把刚刚的环境都清理了

先删除visualizer容器

docker rm 27bb747f91aa267a32c9aa32b407ab4b0b674d87279e1f934d33d5ba7b70597b -f

然后把集群里面跑的那三个nginx全清除

docker service rm 0q28ulho4qpq

现在干净了

Docker 集群 图形化显示 Visualizer

 

然后开始准备docker-compose.yml文件

 

version: "3"

services:

 nginx:

  image: nginx

  ports:

   - "80:80"

  networks:

   - mainweb

  deploy:

   mode: replicated

   replicas: 7

    

 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:

 mainweb:

 

然后执行 把文件拷到主节点上,执行下面命令

docker stack deploy -c docker-compose.yml nv

Docker 集群 图形化显示 Visualizer

 

注意上面,刚开始的时候七个服务只启动了2个,这个不是问题,要等一小会。

Docker 集群 图形化显示 Visualizer

 

然后可以随便找一个节点访问80

Docker 集群 图形化显示 Visualizer

 

然后访问下http://192.168.0.102:8080/

Docker 集群 图形化显示 Visualizer

 

三台服务器跑了7个容器,分布很清晰。然后要注意一个地方,这种直接放到docker-compose.yml的姿势和最上面在manager节点单独安装的最大区别就是,yml这种会导致任何一个节点访问8080都可以看到整个集群的情况,这个很好理解,因为这个服务已经被集成到集群里了,而集群的每个ip:8080就都可以访问了。

Docker 集群 图形化显示 Visualizer

 

部署的时候根据实际情况自己安排即可。