docker swarm 介紹
swarm 簡介
swarm是docker公司自研發的容器集群管理系統,swarm在早期是作為乙個獨立服務存在,在docker engine v1.12中整合了swarm的集群管理和編排功能。可以通過初始化swarm或加入現有swarm來啟用docker引擎的swarm模式。
swarm 兩種角色
manager:接收客戶端服務定義,將任務傳送到worker節點;維護集群期望狀態和集群管理功能及leader選舉。預設情況下manager節點也會執行任務,也可以配置只做管理任務。
worker:接收並執行從管理節點分配的任務,並報告任務當前狀態,以便管理節點維護每個服務期望狀態。
swarm特點
1. docker engine整合集群管理
使用docker engine cli 建立乙個docker engine的swarm模式,在集群中部署應用程式服務。
2. 去中心化設計
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:-- 1、docker service create:我們通過docker service create這個命令去建立乙個服務。swarm manager:-- 1、api:這個請求直接由swarm manager的api進行接收,接收命令並建立服務物件。
-- 2、orchestrator:為服務建立乙個任務。
-- 4、dispatcher:將任務分配到指定的節點。
-- 5、scheduler:再該節點中下發指定命令。
worker node:接收manager任務後去執行這個任務。
-- 1、container:建立相應的容器。
-- 2、worker:連線到排程程式以檢查分配的任務
-- 3、executor:執行分配給工作節點的任務
service:為乙個副本,可以理解為是乙個任務,乙個任務是乙個容器。
swarm manager:它將這個副本下發到三個可用的work節點。
container:實際的docker容器去執行應用。
task:work任務的名稱為service名稱後面跟.1根據個數以此類推。
Docker Swarm排程策略
swarm在用命令swarm manager啟動swarm manager時,可用 strategy指定排程策略。swarm提供了三種排程策略計算節點的排名,在排程 例如選擇哪乙個節點執行容器時 時,取排名最前的節點。這三種排程策略是 spread binpack random random策略 隨...
docker swarm核心概念
翻譯自docker官方文件,原文 本節介紹了docker1.12中集群管理和編排特性的特有概念。節點是swarm中的乙個docker引擎例項。你也可以把它想成是乙個docker節點。你可以在乙個物理機或雲伺服器上執行多個節點,但生產環境中的swarm部署通常包括分布在多個物理機和雲平台上的docke...
docker swarm 管理服務
docker swarm中服務的概念是 乙個服務包含swarm集群中多個節點,每個節點都可以部署服務,每個服務也包含多個相關的容器。docker service help commands create create a new service inspect display detailed in...