將節點加入叢集

當您首次建立 Swarm 時,您會將單一 Docker Engine 置於 Swarm 模式中。為了充分利用 Swarm 模式,您可以將更多節點加入 Swarm。

  • 增加工作節點可以提升容量。當您將服務部署到 Swarm 時,引擎會在可用節點(無論是工作節點還是管理節點)上排程任務。當您為 Swarm 加入工作節點時,您就擴展了 Swarm 的規模,可以在不影響管理節點 Raft 一致性的情況下處理更多任務。
  • 管理節點可提升容錯能力。管理節點負責 Swarm 的編排和叢集管理功能。在管理節點中,由單一領導者節點 (Leader) 執行編排任務。如果領導者節點離線,剩餘的管理節點會選出新的領導者,並恢復編排與維持 Swarm 狀態。預設情況下,管理節點也會執行任務。

Docker Engine 會根據您提供給 docker swarm join 指令的 join-token 加入 Swarm。節點僅在加入時使用此 Token。如果您隨後輪換 (rotate) 了 Token,並不會影響現有的 Swarm 節點。請參閱 以 Swarm 模式執行 Docker Engine

以工作節點 (Worker node) 加入

若要取得包含工作節點加入 Token 的加入指令,請在管理節點上執行以下指令:

$ 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 Token,將目前節點加入管理節點監聽位址所在的 Swarm。
  • 將目前節點的可用性設為 Active,這意味著它現在可以從排程器接收任務。
  • ingress 覆蓋網路 (overlay network) 延伸至目前節點。

以管理節點 (Manager node) 加入

當您執行 docker swarm join 並傳入管理節點 Token 時,Docker Engine 切換至 Swarm 模式的方式與工作節點相同。管理節點同時參與 Raft 一致性協定。新節點狀態應為 Reachable,但原有的管理節點仍會是 Swarm 的 Leader

Docker 建議每個叢集配置三個或五個管理節點以實現高可用性。由於 Swarm 模式的管理節點使用 Raft 協定共享資料,因此必須有奇數個管理節點。只要超過半數的管理節點可用(形成法定人數),Swarm 就能繼續運作。

關於 Swarm 管理節點與管理 Swarm 的更多詳細資訊,請參閱 管理與維護 Docker Engine Swarm

若要取得包含管理節點加入 Token 的加入指令,請在管理節點上執行以下指令:

$ 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.

了解更多

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.