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. 節點
節點是集羣中的一個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/