架構

叢集架構

Google Distributed Cloud (GDC) 實體隔離設備會運作單一叢集,其中包含所有三個裸機節點,稱為機構基礎架構叢集。專屬管理 API 伺服器,以 Pod 工作負載的形式在叢集上執行,並代管管理平面 API。使用者工作負載 (包括 VM 和 Kubernetes Pod) 可以在這個叢集上執行。這個叢集模型中沒有使用者叢集。

網路架構

EL8000 包含背板,可在裝置內建立四個獨立的第 2 層 (L2) 網路:

  1. 整合式 Lights-Out (iLO) 控制台 (1GbEth)
  2. 管理網路 (1GbEth)
  3. 資料網路 A (10GbEth)
  4. 資料網路 B (10GbEth)

下圖顯示 L2 網路如何連線至 Mellanox 交換器 (https://www.hpe.com/psnow/doc/a00043975enw.html?jumpid=in_pdp-psnow-qs)。刀鋒伺服器中的每個網路都會連線至單一網路交換器。每個伺服器刀鋒的 iLO 控制台網路都會連線至網路交換器 1。管理網路會連線至網路交換器 2,資料網路則會連線至交換器 3 和 4。

連線至交換器的第 2 層網路

客戶網路連接埠 (15 和 17) 可存取叢集 (VLAN 100),且只允許傳輸至 Ingress CIDR 的流量。服務可使用 Ingress CIDR,且系統會透過邊界閘道通訊協定 (BGP) 將範圍通告給客戶網路。

管理網路連接埠 (16 和 18) 可存取系統管理 (VLAN 501),因此客戶可以在更廣泛的網路中使用裝置,並僅透過本機連線執行系統管理工作。

較低的網路拓撲

實體網路

GDC 包含以單一租戶模式運作的混合式叢集。混合式叢集 (又稱基礎架構叢集) 包含合併的系統和管理員叢集:

實體網路

實體設計以 Mellanox SN2010 為中心,做為設備基礎架構叢集與外部客戶網路之間的閘道。

基礎架構叢集包含 3 個裸機節點 (BM)。BM 上的連結可分為下列類別:

  • 資料網路連線 (子網路 198.18.2.0/24),位於 VLAN 100 上。 BM 有一個 NIC,其中 2 個連接埠 NIC0P1NIC0P2 已繫結,並連線至 TOR 交換器。BM1BM2 直接連線至交換器,而 BM3 則使用非受管交換器連線至 TOR。
  • 管理網路連線 ( 子網路 198.18..0/24) 位於 VLAN 501 上。 ILO 和 MGMT 介面會透過這個 VLAN 使用 1G 介面連線。BM 節點上的 ILO 介面和 MGMT 介面會使用非受管交換器連線至交換器。
  • 也許:在 VLAN 200-203(?) 上新增 OTS 網路,子網路 198.18.1.x

從 Mellanox 交換器到客戶路由器的連線提供外部連線。這項連線會使用 10G 介面,並透過 BGP 通訊協定向客戶通告外部網路 IP。客戶會使用外部 IP 位址,存取裝置單元提供的必要服務。

邏輯網路

有兩個虛擬區域網路 (VLAN) 會區隔各種流量:

  1. VLAN 100:叢集 (Ingress 虛擬網際網路通訊協定地址 (VIP)、叢集/節點 IP),由客戶提供 IPv4 子網路。
  2. VLAN 501:管理 (iLO、Mgmt),IPv4 子網路由客戶提供。

邏輯網路

上層網路拓撲

叢集是使用第 2 層 (L2) 負載平衡設定。叢集的 Ingress VIP 與節點位於相同的子網路。將 Ingress VIP 指派給節點後,節點會使用位址解析通訊協定 (ARP),確保節點可從 TOR 存取。

TOR 會使用 BGP 與客戶網路對等互連,並向客戶網路通告叢集的 Ingress 範圍 (客戶提供的匯總前置字元)。機架移至新位置後,我們可以向新客戶網路宣傳叢集 Ingress 範圍。機架移至新位置時,您必須手動更新連線至客戶網路的 TOR 介面 IP 位址,並更新 BGP 對等互連資訊,新增 BGP 對等互連點。

叢集使用的所有 IP 位址都會從機架的 externalCidrBlock 分配,或是硬式編碼 (適用於叢集內部 IP 位址)。在下圖中,externalCidrBlock 範例為 10.0.0.0/24

叢集使用 L2 LB (ARP) 宣傳 10.0.0.224。

叢集 IP 範圍

您需要在裸機叢集中設定多個 IP 範圍。

  • Pod CIDR:用於將 IP 指派給叢集中 Pod 的 IP 範圍。這個範圍使用島嶼模式,因此實體網路 (ToR) 不需要知道 Pod CIDR。唯一的要求是範圍不得與叢集 Pod 需要存取的任何服務重疊。叢集建立後,Pod CIDR 就無法變更。
  • 服務 CIDR:用於內部叢集服務,與 Pod CIDR 的需求相同。
  • 節點 CIDR:Kubernetes 叢集節點的 IP 位址。叢集建立後,這些位址也無法變更。
  • 輸入範圍:用於叢集中任何對外公開服務的 IP 位址範圍。外部用戶端會使用這些 IP 位址存取叢集內服務。這個範圍需要通告給客戶網路,用戶端才能連線至 Ingress IP。
  • 控制層 VIP:叢集會宣傳此位址,以供存取 Kubernetes api-server (類似於 Ingress VIP)。如果叢集處於第 2 層負載平衡模式,這個 VIP 必須與節點位於同一個子網路。

叢集的 Pod CIDR 和 Service CIDR 會經過硬式編碼。Pod CIDR 為 192.168.0.0/16,Service CIDR 為 10.96.0.0/12。叢集會使用相同的兩個 CIDR,因為這些 IP 不會公開到叢集外部。

節點會從 GDC cell.yaml 中設定的 externalCidrBlock 取得 IP 位址。這些 IP 位址是由客戶在機架佈建前提供。

叢集的 Ingress 範圍和控制層 VIP 也會從 externalCidrBlock 分配。TOR 必須向客戶網路通告 externalCidrBlock,以便機架外部的用戶端存取這些 VIP。