1. 程式人生 > >Docker-swarm叢集搭建及visualize監控的相關配置

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新增至叢集:

[[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頁面去監控管理的叢集每個容器的狀態
這裡寫圖片描述