跳至主要内容

建議的叢集架構

有三種可以指派給節點的角色:etcd、controlplane 和 worker。

將 Worker 節點與具有其他角色的節點分離​

在設計你的叢集時,你有兩個選項:

  • 為每個角色使用專用節點。這可以確保為指定角色所需的元件提供資源可用性。它還根據連接埠需求嚴格隔離每個角色之間的網路流量。
  • 將 etcd 和 controlplane 角色指派給相同的節點。這些節點必須滿足兩個角色的硬體需求。

在任何情況下,worker 角色都不應在具有 etcd 或 controlplane 角色的節點上使用或新增。

因此,每個節點應該具有以下角色配置之一:

  • etcd
  • controlplane
  • 同時具有 etcd 和 controlplane
  • worker

每個角色的建議節點數量​

叢集應該具有:

  • 至少三個具有 etcd 角色的節點,以便在遺失一個節點時仍能存活。增加此數量以提高節點容錯能力,並將它們分散到各個(可用性)區域,以提供更好的容錯能力。
  • 至少兩個具有 controlplane 角色的節點,以實現主要元件的高可用性。
  • 至少兩個具有 worker 角色的節點,以便在節點故障時重新排程工作負載。

有關每個角色用途的更多資訊,請參閱 Kubernetes 中節點角色章節。

Controlplane 節點數量​

新增多個具有 controlplane 角色的節點可以使每個主要元件都具有高可用性。

etcd 節點數量​

在維持叢集可用性的情況下,你可以一次遺失的節點數量取決於指派了 etcd 角色的節點數量。對於具有 n 個成員的叢集,最小值為 (n/2)+1。因此,我們建議在一個區域內的 3 個不同可用性區域中建立 etcd 節點,以便在遺失一個可用性區域時仍能存活。如果你只使用兩個區域,則只能在沒有遺失大多數節點的區域遺失時才能存活。

具有 etcd 角色的節點多數容錯能力
110
220
321
431
532
642
743
853
954

參考資料:

Worker 節點數量​

新增多個具有 worker 角色的節點將確保在節點故障時可以重新排程你的工作負載。

為什麼 Rancher 叢集和執行應用程式的叢集的正式環境需求不同​

你可能已經注意到,我們的 Kubernetes 安裝說明不符合我們對正式環境就緒叢集的定義,因為沒有 worker 角色的專用節點。然而,對於你的 Rancher 安裝,這個三節點叢集是有效的,因為:

  • 它允許一個 etcd 節點故障。
  • 它透過擁有多個 controlplane 節點來維護主要元件的多個實例。
  • 除了 Rancher 本身之外,不應該在此叢集上建立其他工作負載。

參考資料​