節點運作方式

Swarm 模式讓您可以建立一個由一個或多個 Docker Engine 組成的叢集,稱為 Swarm。Swarm 由一個或多個節點組成:這些節點可以是執行 Docker Engine 的實體或虛擬機器。

節點分為兩種:管理節點 (managers)工作節點 (workers)

Swarm mode cluster

如果您尚未閱讀,請參閱 Swarm 模式概述關鍵概念

管理節點 (Manager nodes)

管理節點處理叢集管理任務

管理節點使用 Raft 實作,維護整個 Swarm 和其上所有執行服務的一致性內部狀態。為了測試目的,執行具有單一管理節點的 Swarm 是沒問題的。如果單一管理節點的 Swarm 中的管理節點發生故障,您的服務會繼續執行,但您需要建立一個新的叢集來進行復原。

為了利用 Swarm 模式的容錯功能,我們建議您根據組織的高可用性需求,實作奇數個節點。當您擁有多個管理節點時,您可以在管理節點發生故障時進行復原,而不會造成停機。

  • 擁有三個管理節點的 Swarm 最多可容忍一個管理節點遺失。

  • 擁有五個管理節點的 Swarm 最多可同時容忍兩個管理節點遺失。

  • 叢集中擁有奇數個 N 個管理節點,最多可容忍 (N-1)/2 個管理節點遺失。Docker 建議一個 Swarm 最多配置七個管理節點。

    重要

    增加更多管理節點並不代表會增加擴充性或更高的效能。通常情況正好相反。

工作節點 (Worker nodes)

工作節點也是 Docker Engine 的執行個體,其唯一目的是執行容器。工作節點不參與 Raft 分散式狀態、不負責排程決策,也不提供 Swarm 模式 HTTP API。

您可以建立一個只有一個管理節點的 Swarm,但沒有至少一個管理節點,就無法擁有工作節點。預設情況下,所有管理節點同時也是工作節點。在單管理節點叢集中,您可以執行 docker service create 等指令,排程器會將所有任務放置在本地的 Engine 上。

若要防止排程器在多節點 Swarm 中將任務放置在管理節點上,請將管理節點的可用性設定為 Drain(排空)。排程器會優雅地停止 Drain 模式節點上的任務,並將任務重新排程到 Active(活動)節點上。排程器不會將新任務指派給可用性為 Drain 的節點。

請參閱 docker node update 指令列參考,了解如何變更節點可用性。

變更角色

您可以執行 docker node promote 將工作節點提升為管理節點。例如,當您需要將管理節點離線進行維護時,您可能需要提升工作節點。請參閱 節點提升 (node promote)

您也可以將管理節點降級為工作節點。請參閱 節點降級 (node demote)

了解更多

  • 閱讀關於 Swarm 模式 服務 (services) 的運作方式。
  • 了解 Swarm 模式中的 PKI 如何運作。
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.