叢集模式
注意
Swarm 模式是管理 Docker Daemon 叢集的進階功能。
如果您打算將 Swarm 用作生產環境執行階段環境,請使用 Swarm 模式。
如果您不打算使用 Swarm 進行部署,請改用 Docker Compose。如果您正在開發 Kubernetes 部署,請考慮使用 Docker Desktop 中的 整合 Kubernetes 功能。
目前版本的 Docker 包含 Swarm 模式,可用於原生管理稱為 swarm 的 Docker 引擎叢集。使用 Docker CLI 建立 swarm、將應用程式服務部署到 swarm,以及管理 swarm 行為。
Docker Swarm 模式內建於 Docker 引擎中。請勿將 Docker Swarm 模式與 Docker Classic Swarm 混淆,後者已不再積極開發。
功能亮點
與 Docker 引擎整合的叢集管理
使用 Docker 引擎 CLI 建立 Docker 引擎的 swarm,您可以在其中部署應用程式服務。您不需要額外的協調軟體來建立或管理 swarm。
分散式設計
Docker 引擎會在執行階段處理任何特殊化,而不是在部署時處理節點角色之間的差異。您可以使用 Docker 引擎部署兩種節點:管理節點和工作節點。這表示您可以從單一磁碟映像檔建置整個 swarm。
宣告式服務模型
Docker 引擎使用宣告式方法,讓您定義應用程式堆疊中各種服務的期望狀態。例如,您可以描述一個由 Web 前端服務、訊息佇列服務和資料庫後端組成的應用程式。
擴展
對於每個服務,您可以宣告您想要執行的任務數量。當您向上或向下擴展時,swarm 管理器會透過新增或移除任務來自動調整,以維持期望狀態。
期望狀態調節
swarm 管理器節點會持續監控叢集狀態,並協調實際狀態與您表達的期望狀態之間的任何差異。例如,如果您設定服務以執行容器的 10 個複本,而託管其中兩個複本的工作機當機,則管理器會建立兩個新的複本來取代當機的複本。swarm 管理器會將新的複本指派給正在執行且可用的工作機。
多主機網路
您可以為您的服務指定覆蓋網路。當 swarm 管理器初始化或更新應用程式時,它會自動將位址指派給覆蓋網路上的容器。
服務探索
Swarm 管理器節點會將 swarm 中的每個服務指派一個唯一的 DNS 名稱,並對正在執行的容器進行負載平衡。您可以透過嵌入 swarm 的 DNS 伺服器查詢 swarm 中執行的每個容器。
負載平衡
您可以將服務的埠公開給外部負載平衡器。在內部,swarm 允許您指定如何在節點之間分配服務容器。
預設安全
Swarm 中的每個節點都會強制執行 TLS 雙向驗證和加密,以確保自身與所有其他節點之間的通訊安全。您可以選擇使用自簽署的根憑證或來自自訂根 CA 的憑證。
滾動更新
在推出時,您可以將服務更新逐步套用到節點。swarm 管理器允許您控制將服務部署到不同節點集之間的延遲。如果出現任何問題,您可以回復到先前版本的服務。
下一步是什麼?
- 瞭解 Swarm 模式的 主要概念。
- 開始使用 Swarm 模式教學。
- 探索 Swarm 模式 CLI 命令