1. 程式人生 > >Swarm實現Docker集群的搭建和管理。

Swarm實現Docker集群的搭建和管理。

ins ntpd mage 不同的 解決 task 時間 text 服務的啟動

1.Swarm是一個由Docker開發的調度框架。
(圖網上找的)

技術分享圖片

2.負載均衡: Docker稱之為入口負載均衡(ingress load balancing)。它的工作方式是,所有worker節點都監聽在發布的服務端口上。當該服務被外部系統調用時,收到流量的節點會通過Docker提供的內部DNS服務,將流量負載均衡不同的worker上。

(圖網上找的)
技術分享圖片

3.docker集群搭建。

(1).時間同步:
yum install –y ntpdate
ntpdate us.pool.ntp.org

(2).swarm manager服務的啟動
docker swarm init --listen-addr 192.168.56.200:2377

技術分享圖片

(3).要是節點加入到對應的集群中是通過token來識別的。
添加時發現報錯了百度了一把網上說我的2377端口沒有打開。
打開防火墻端口:
firewall-cmd --add-port=2377/tcp --permanent
firewall-cmd --reload

技術分享圖片

(4).docker swarm join --token SWMTKN-1-5uurnd5jjaxrsa6gt6s9chg35uuhm9f9cs7g0blmqdkw9lkpwf-3gcqoqcy0nom2i0q57un9fzcj 192.168.56.200:2377
此時這臺機器已經成為了worker

技術分享圖片

至此問題解決,也說明一點,如果要使用swarm功能,需要在所有manager node節點上開啟2377端口。

(5).也可以在manager上查看集群中機器情況
docker node ls

技術分享圖片

4.docker服務創建

服務:是指一個長期運行(long-running)的Docker容器,它可以被部署到任意一臺worker節點上,可以被遠端系統或者Swarm中其他容器連接和消費(consume)的。

任務(Task):服務運行的在一個容器的實例。

副本(replicas):同一個服務以特定數目在worker節點上運行。

創建一個服務
docker service create --name web_server httpd
創建副本數為2的服務
docker service create --name web_server2 --replicas 2

httpd
查看服務:docker service ls

技術分享圖片

查看服務的任務詳情:docker service ps web_server2
這裏有一個問題剛開始創建的兩個服務出現這種情況說服務shutdown了,後面創建的服務正常了。

技術分享圖片

創建副本數為5的服務這次正常了
docker service create --name web_server3 --replicas 5 httpd

技術分享圖片

如果我們想讓所有的節點都運行一個服務,就可以使用服務global化。Global Service使用了創建一個服務,該服務會自動地在每個worker節點上運行任務。
docker service create --name web_server4 --mode global httpd

技術分享圖片

刪除服務:docker service rm web_server

技術分享圖片

服務的擴容與縮容
docker service scale web_server5=2

技術分享圖片

技術分享圖片

集群中服務端口綁定到主機

技術分享圖片

驗證是否成功,(這裏可以都輸入manager機器的IP):

技術分享圖片

Swarm實現Docker集群的搭建和管理。