Docker-swarm集群搭建及visualize监控的相关配置

初识Swarm

Swarm 是 Docker 公司在 2014 年 12 月初发布的一套较为简单的工具,用来管理 Docker 集
群,它将一群 Docker 宿主机变成一个单一的,虚拟的主机。Swarm 使用标准的 Docker API
接口作为其前端访问入口,换言之,各种形式的 Docker Client(docker client in go, docker_py,
docker 等)均可以直接与 Swarm 通信。Swarm 几乎全部用 Go 语言来完成开发。
Swarm deamon 只是一个调度器(Scheduler)加路由器(router),Swarm 自己不运行容器,它
只是接受 docker 客户端发送过来的请求,调度适合的节点来运行容器,这意味着,即使
Swarm 由于某些原因挂掉了,集群中的节点也会照常运行,当 Swarm 重新恢复运行之后,
它会收集重建集群信息

这里写图片描述

创建集群

实验环境:
172.25.62.11:manager
172.25.62.12:worker
172.25.62.13:worker

[root@docker1 ~]# docker swarm init 

这里写图片描述
将worker添加至集群:

[root@docker2 ~]# docker swarm join \
>     --token SWMTKN-1-0cfk12uzsj27k64iqv3ss91nik471v0lrfwde1rgurnvfqesp7-0vt2ypmif3te17kx4ad60km32 \
>     172.25.62.11:2377
This node joined a swarm as a worker.
[root@docker3 ~]# docker swarm join \
>     --token SWMTKN-1-0cfk12uzsj27k64iqv3ss91nik471v0lrfwde1rgurnvfqesp7-0vt2ypmif3te17kx4ad60km32 \
>     172.25.62.11:2377
This node joined a swarm as a worker.

查看节点信息:
这里写图片描述
部署服务:
三台机器上都要导入nginx镜像

[root@docker1 ~]# docker  load -i  nginx.tar 
[root@docker1 ~]# docker  images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              c82521676580        3 weeks ago         109 MB

在manager节点上部署了一个Nginx容器

[root@docker1 ~]# docker  service  create --name web --replicas 3 -p 8080:80 nginx
# 添加–replicas 3就是代表集群的个数变为3。manager会将容器平均分配到三个节点上
[root@docker1 ~]# docker service ls
ID            NAME  MODE        REPLICAS  IMAGE
p2roylwoj57l  web   replicated  3/3       nginx
# 可以看到nginx容器分别运行在三台不同的主机上

这里写图片描述
这里写图片描述
编辑默认发布页面测试负载均衡

[root@docker1 ~]# docker service ps  nginx

这里写图片描述

[root@docker1 ~]# docker container cp  index.html  8d9de144711b:/usr/share/nginx/html

这里写图片描述

容器在线扩张以及压缩

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

这里写图片描述

创建swarm的监控容器

导入visualizer镜像

[root@docker1 ~]# docker  load -i  visualizer.tar
[root@docker1 ~]# docker  service create --name viz --publish=8888:8080/tcp  --constraint=node.role==manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer

web页面去监控管理的集群每个容器的状态
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41476978/article/details/81914067