將節點加入叢集
目錄
首次建立 Swarm 時,您會將單個 Docker 引擎置於 Swarm 模式。 若要充分利用 Swarm 模式,您可以將節點新增至 Swarm
- 新增工作節點可提高容量。 將服務部署到 Swarm 時,引擎會將工作排程到可用的節點上,無論它們是工作節點還是管理節點。 將工作節點新增至 Swarm 時,您會增加 Swarm 的規模以處理工作,而不會影響管理節點 Raft 共識。
- 管理節點可提高容錯能力。 管理節點會執行 Swarm 的協調和叢集管理功能。 在管理節點中,單個領導節點會執行協調任務。 如果領導節點故障,其餘的管理節點會選出新的領導節點,並繼續協調和維護 Swarm 狀態。 根據預設,管理節點也會執行任務。
Docker 引擎會根據您提供給 `docker swarm join` 命令的 **加入權杖** 加入 Swarm。 節點僅在加入時使用權杖。 如果您隨後輪替權杖,它不會影響現有的 Swarm 節點。 請參閱 在 Swarm 模式下執行 Docker 引擎。
以工作節點身分加入
若要擷取包含工作節點加入權杖的加入命令,請在管理節點上執行下列命令
$ 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 引擎切換到 Swarm 模式。
- 向管理節點請求 TLS 憑證。
- 使用機器主機名稱命名節點。
- 根據 Swarm 權杖,將目前節點加入管理節點接聽位址的 Swarm。
- 將目前節點設定為 `作用中` 可用性,表示它可以從排程器接收任務。
- 將 `入口` 覆蓋網路延伸至目前節點。
以管理節點身分加入
當您執行 `docker swarm join` 並傳遞管理節點權杖時,Docker 引擎會切換到 Swarm 模式,與工作節點相同。 管理節點也參與 Raft 共識。 新節點應該是 `可連線` 的,但現有管理節點仍然是 Swarm `領導者`。
Docker 建議每個叢集使用三個或五個管理節點來實作高可用性。 因為 Swarm 模式管理節點使用 Raft 共用資料,所以必須有奇數個管理節點。 只要超過一半的管理節點仲裁達成,Swarm 就可以繼續運作。
有關 Swarm 管理節點和管理 Swarm 的更多詳細資訊,請參閱 管理和維護 Docker 引擎 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 模式教學課程