Docker Swarm mode


1.  集群模式基本概念

swarm mode(譯:集群模式)

standalone mode(譯:單機模式)

以集群模式運行Docker

1.1.  集群

Docker引擎內部已經集成了集群管理

一個集群由多個Docker主機組成,它們以集群模式運行。集群中有兩種角色:manager和worker。一個給定的主機,它有可能是manager,或者worker,也有可能同時兼具這兩種角色。當你創建一個服務的時候,你會定義它們的狀態(比如:副本數量、網絡和存儲資源、對外暴露的端口等等)。Docker負責維護這些狀態。如果一個worker節點不可用了,那么Docker會將該節點上的任務轉給其它節點。任務是一個運行的容器,它是集群服務的一部分,由manager管理,而非作為一個獨立的容器。

相對於單機模式而言,集群模式最關鍵的優勢在於你可以修改服務的配置(比如:networks或volumes等)而不需要手動重啟服務。Docker將自動更新配置,停止已經過期的配置的服務任務,並創建與之匹配的新的服務任務。

當Docker以集群模式運行時,你仍然可以在集群的任意一台主機上以單機模式運行,只要它還是集群服務。單機容器與集群服務最主要的區別在於只有集群的manager才可以管理集群,而單機的容器可以被任意守護進程啟動。Docker守護進程可以以manager身份、worker身份、或二者兼具的身份參與到集群中。

(小結:

  1. 回憶一下,運行中的容器對外提供服務,也就是說服務的載體是容器
  2. 單機模式是一台主機上運行多個容器,每個容器單獨提供服務;集群模式是多台機器組成一個集群,多個容器一起提供同一個服務;
  3. 集群模式的好處是當你修改了服務的配置后無需手動重啟服務
  4. 集群與單機最大的區別在於,只有集群中的manager才能管理集群中的一切(包括服務、容器都歸它管,你無法再一個woker節點上操作容器)

1.2.  節點

節點是集群中的一個Docker實例,你可以認為它是一個Docker節點。你可以在單台物理機或者雲服務上創建一個或多個節點。但是,在生產環境通常是一台物理機或雲服務器時一個節點。

為了將你的應用部署到集群中,你需要提交一個服務定義給集群manger節點。manager節點分發任務(task)給worker節點。

manager節點還負責維護集群狀態。manager節點選擇一個leader來編排任務。

worker節點從manager節點那里接收任務並執行。默認情況下,manager節點上也運行着和worker節點上一樣的服務。但是你也可以將它們配置為僅運行manager任務。每個worker節點上都運行着一個agent,它們負責報告分配給該worker節點的任務的相關情況。worker節點向manager節點報告分配給它的任務的當前狀態,以便於manager可以更好地分配任務。

1.3.  服務與任務

服務是要在manager節點或worker節點上執行的任務的定義。當你創建服務的時候,會指定運行哪個鏡像,以及在容器運行的時候執行哪些命令。

任務就是某個容器,以及要在容器中執行的命令

1.4.  負載均衡

2.  集群創建

創建集群

加入集群

部署服務

檢查服務

動態擴容

刪除服務

動態滾動更新服務

節點下線

3.  備忘單

4.  文檔

https://docs.docker.com/engine/swarm/swarm-tutorial/scale-service/

https://docs.docker.com/engine/swarm/swarm-tutorial/rolling-update/

https://docs.docker.com/engine/swarm/ingress/

https://docs.docker.com/engine/reference/commandline/swarm_update/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM