Docker-swarm叢集搭建及visualize監控的相關配置
阿新 • • 發佈:2019-01-09
初識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新增至叢集:
[[email protected] ~]# docker swarm join \
> --token SWMTKN-1-0cfk12uzsj27k64iqv3ss91nik471v0lrfwde1rgurnvfqesp7-0vt2ypmif3te17kx4ad60km32 \
> 172.25 .62.11:2377
This node joined a swarm as a worker.
[[email protected] ~]# 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頁面去監控管理的叢集每個容器的狀態