將節點加入 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.
瞭解更多
swarm join
命令列參考- Swarm 模式教程