Docker Swarm 介紹 or 工做原理

Docker Swarm 介紹node


Swarm 簡介docker

Swarm是Docker公司自研發的容器集羣管理系統,Swarm在早期是做爲一個獨立服務存在,在Docker Engine v1.12中集成了Swarm的集羣管理和編排功能。能夠經過初始化Swarm或加入現有Swarm來啓用Docker引擎的Swarm模式。安全

  • Docker Engine CLI和API包括了管理Swarm節點命令,好比添加、刪除節點,以及在Swarm中部署和編排服務。
  • 也增長了服務棧(Stack)、服務(Service)、任務(Task)概念。

Swarm 兩種角色服務器

Manager:接收客戶端服務定義,將任務發送到worker節點;維護集羣指望狀態和集羣管理功能及Leader選舉。默認狀況下manager節點也會運行任務,也能夠配置只作管理任務。網絡

Worker:接收並執行從管理節點分配的任務,並報告任務當前狀態,以便管理節點維護每一個服務指望狀態。負載均衡


Swarm特色加密

1. Docker Engine集成集羣管理spa

使用Docker Engine CLI 建立一個Docker Engine的Swarm模式,在集羣中部署應用程序服務。設計

2. 去中心化設計orm

Swarm角色分爲Manager和Worker節點,Manager節點故障不影響應用使用。

3. 擴容縮容

能夠聲明每一個服務運行的容器數量,經過添加或刪除容器數自動調整指望的狀態。

4. 指望狀態協調

Swarm Manager節點不斷監視集羣狀態,並調整當前狀態與指望狀態之間的差別。例如,設置一個服務運行10個副本容器,若是兩個副本的服務器節點崩潰,Manager將建立兩個新的副本替代崩潰的副本。並將新的副本分配到可用的worker節點。

5. 多主機網絡

能夠爲服務指定overlay網絡。當初始化或更新應用程序時,Swarm manager會自動爲overlay網絡上的容器分配IP地址。

6. 服務發現

Swarm manager節點爲集羣中的每一個服務分配惟一的DNS記錄和負載均衡VIP。能夠經過Swarm內置的DNS服務器查詢集羣中每一個運行的容器。

7. 負載均衡

實現服務副本負載均衡,提供入口訪問。也能夠將服務入口暴露給外部負載均衡器再次負載均衡。

8. 安全傳輸

Swarm中的每一個節點使用TLS相互驗證和加密,確保安全的其餘節點通訊。

9. 滾動更新

升級時,逐步將應用服務更新到節點,若是出現問題,能夠將任務回滾到先前版本


Docker Swarm 工做原理

Docker Engine client: -- 一、docker service create:咱們經過docker service create這個命令去建立一個服務。
swarm manager: -- 一、API:這個請求直接由Swarm manager的API進行接收,接收命令並建立服務對象。 -- 二、orchestrator:爲服務建立一個任務。 -- 三、allocater:爲這個任務分配IP地址。 -- 四、dispatcher:將任務分配到指定的節點。 -- 五、scheduler:再該節點中下發指定命令。
worker node:接收manager任務後去運行這個任務。 -- 一、container:建立相應的容器。 -- 二、worker:鏈接到調度程序以檢查分配的任務 -- 三、executor:執行分配給工做節點的任務
Service:爲一個副本,能夠理解爲是一個任務,一個任務是一個容器。
swarm manager:它將這個副本下發到三個可用的work節點。
container:實際的docker容器去運行應用。
task:work任務的名稱爲service名稱後面跟.1根據個數以此類推。

相關文章
相關標籤/搜索