天天看點

docker叢集部署:第4部分:群集

docker叢集部署:第4部分:群集

介紹

在第3部分:服務中,介紹了你在第2部分中編寫的應用程式,并将其轉化為服務,然後在生産過程中将其擴充5倍,進而實作單台伺服器多個容器的負載均衡。

在第4部分中,将此應用程式部署到群集上,并在多台伺服器上運作它。通過将多台機器連接配接到名為“Dockerized”的群集,使的多容器,多機器應用成為可能。

群集概念

群集(swarm)是運作Docker并加入到一個叢集中的一組機器。群體中的伺服器可以是實體的或虛拟的。加入群體後,他們被稱為節點。

Swarm管理人員可以使用多種政策來運作容器,你可以訓示swarm manager(叢集管理機)在Compose檔案中使用這些政策,就像你已經使用的政策一樣。

swarm manager(叢集管理機)是群體中唯一可以執行你的指令的機器,或者授權其他機器作為從機加入群體。從機隻是在那裡提供資源或服務能力,并沒有權力告訴任何其他機器可以做什麼和不可以做什麼。

到目前為止,你已經在本地機器上以單主機模式使用Docker。但是Docker也可以切換到群集模式,立即啟用群模式使目前機器成為swarm manager(叢集管理機)。從那時起,Docker将運作你正在管理的群集上執行的指令,而不僅僅是在目前的機器上。

建立群集

一個群由多個節點組成,可以是實體機或虛拟機。基本的概念很簡單:運作docker swarm init來啟用swarm模式,并讓你的目前機器成為swarm manager,然後在其他機器上運作docker swarm join讓它們作為worker(從機)加入swarm。

說明:在管理機上執行docker swarm init後,系統會産生如上的内容和docker swarm join的資訊,但是,如果我們不是立即将從機加入叢集中,那麼我們應該如何得到這個資訊呢?

離開叢集

如果你想重新開始,你可以從每個節點運作docker swarm leave。

在群集上部署應用程式

兩台機器分别是swarm1(10.0.0.38)和swarm2 (10.0.0.39)

具體步驟如下:

通路叢集

在主機(manage)上執行:curl 10.0.0.38:80

說明:不要使用curl 10.0.0.39:80,執行時會報拒絕連接配接的錯誤!

叢集上應用程式的更改

通過更改docker-compose.yml檔案來更改應用程式。

無論哪種情況,隻需docker stack deploy再次運作以部署這些更改即可。

使用docker swarm join将任何實體或虛拟機器加入到此群集,并将這些新添加的機器資源添加到群集中。docker stack deploy随後運作,你的應用程式将利用新的資源。

叢集清理

你可以拆下堆疊docker stack rm 叢集名。例如:

     本文轉自品鑒初心51CTO部落格,原文連結:http://blog.51cto.com/wutengfei/2064012,如需轉載請自行聯系原作者