Docker Swarm mode

1.  集羣模式基本概念docker

swarm mode(譯:集羣模式)服務器

standalone mode(譯:單機模式)網絡

以集羣模式運行Docker負載均衡

1.1.  集羣spa

Docker引擎內部已經集成了集羣管理3d

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

相對於單機模式而言,集羣模式最關鍵的優點在於你能夠修改服務的配置(好比: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/

相關文章
相關標籤/搜索