將節點加入 swarm

初次建立 Swarm 時,您會將單個 Docker Engine 置於 Swarm 模式。要充分利用 Swarm 模式,您可以向 Swarm 新增節點。

  • 新增工作節點可增加容量。當您將服務部署到 Swarm 時,引擎會在可用節點上排程任務,無論是工作節點還是管理節點。當您向 Swarm 新增工作節點時,可以增加 Swarm 的規模以處理任務,而不會影響管理節點的 Raft 共識。
  • 管理節點可提高容錯能力。管理節點執行 Swarm 的編排和叢集管理功能。在管理節點中,單個領導節點負責編排任務。如果領導節點出現故障,其餘管理節點會選舉新的領導者並恢復 Swarm 狀態的編排和維護。預設情況下,管理節點也執行任務。

Docker Engine 根據您提供給 docker swarm join 命令的 **加入令牌 (join-token)** 加入 Swarm。節點僅在加入時使用該令牌。如果您隨後輪換令牌,則不會影響現有 Swarm 節點。請參閱 在 Swarm 模式下執行 Docker Engine

以工作節點身份加入

要檢索包含工作節點加入令牌的加入命令,請在管理節點上執行以下命令:

$ docker swarm join-token worker

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
    192.168.99.100:2377

在工作節點上執行輸出中的命令以加入 Swarm。

$ docker swarm join \
  --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
  192.168.99.100:2377

This node joined a swarm as a worker.

docker swarm join 命令執行以下操作:

  • 將當前節點上的 Docker Engine 切換到 Swarm 模式。
  • 向管理器請求 TLS 證書。
  • 使用機器主機名命名節點。
  • 根據 Swarm 令牌,將當前節點加入到管理器監聽地址處的 Swarm。
  • 將當前節點設定為 Active 可用性,這意味著它可以接收來自排程程式的任務。
  • ingress 覆蓋網路擴充套件到當前節點。

以管理節點身份加入

當您執行 docker swarm join 並傳遞管理器令牌時,Docker Engine 會像工作節點一樣切換到 Swarm 模式。管理節點也參與 Raft 共識。新節點應為 Reachable,但現有管理器仍為 Swarm 的 Leader

Docker 建議每個叢集有三到五個管理節點以實現高可用性。由於 Swarm 模式管理節點使用 Raft 共享資料,因此必須有奇數個管理器。只要超過一半的管理節點可用,Swarm 就可以繼續執行。

有關 Swarm 管理器和 Swarm 管理的更多詳細資訊,請參閱 管理和維護 Docker Engine Swarm

要檢索包含管理節點加入令牌的加入命令,請在管理節點上執行以下命令:

$ docker swarm join-token manager

To add a manager to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
    192.168.99.100:2377

在新管理節點上執行輸出中的命令以將其加入 Swarm。

$ docker swarm join \
  --token SWMTKN-1-61ztec5kyafptydic6jfc1i33t37flcl4nuipzcusor96k7kby-5vy9t8u35tuqm7vh67lrz9xp6 \
  192.168.99.100:2377

This node joined a swarm as a manager.

瞭解更多