見證節點
自 v1.3.0 版本起提供
部署在生產環境中的 Harvester 叢集需要一個控制平面 (control plane) 來進行節點和 pod 管理。一個典型的三節點叢集擁有三個管理節點,每個節點都包含完整的控制平面元件。其中一個關鍵元件是 etcd,Kubernetes 使用它來儲存資料(設定、狀態和中繼資料)。etcd 節點數量必須始終為奇數(例如,Harvester 中預設為 3),以確保維持法定人數 (quorum)。
某些情況下,您可能需要避免將工作負載和使用者資料部署到管理節點。在這種情況下,可以指派一個叢集節點擔任 見證 (witness) 角色,限制其僅作為 etcd 叢集成員運作。見證節點負責建立成員法定人數(節點的多數),以達成對叢集狀態更新的共識。
見證節點不儲存任何資料,但仍須考慮 etcd 節點的 硬體建議。使用資源受限的硬體會顯著影響叢集效能,如文章 Slow etcd performance (performance testing and optimization) 所述。
Harvester v1.3.0 支援具有兩個 管理節點和一個見證節點(以及可選的一個或多個工作節點)的叢集。如需更多關於 Harvester 中節點角色的資訊,請參閱 角色管理。
節點只能在加入叢集時被指派為 witness 角色。每個叢集只能有一個見證節點。
建立包含見證節點的 Harvester 叢集
您可以在節點加入新建立的叢集時,指派 witness 角色給該節點。
在以下範例中,建立了一個包含三個節點的叢集,並且節點 harvester-node-1 被指派了 witness 角色。harvester-node-1 消耗較少的資源,且僅具備 etcd 功能。
NAME↑ STATUS ROLE VERSION PODS CPU MEM %CPU %MEM CPU/A MEM/A AGE
harvester-node-0 Ready control-plane,etcd,master v1.27.10+rke2r1 70 1095 10143 10 63 10000 15976 4d13h
harvester-node-1 Ready etcd v1.27.10+rke2r1 7 258 2258 2 14 10000 15976 4d13h
harvester-node-2 Ready control-plane,etcd,master v1.27.10+rke2r1 36 840 6905 8 43 10000 15976 4d13h
由於叢集必須有三個節點,晉升控制器 (promote controller) 會將其他兩個節點晉升。之後,叢集將擁有兩個控制平面節點和一個見證節點。
見證節點上的工作負載
見證節點僅執行以下必要的基礎工作負載:
- harvester-node-manager
- cloud-controller-manager
- etcd
- kube-proxy
- rke2-canal
- rke2-multus