本文說明 Google Distributed Cloud 為新叢集支援的負載平衡選項。
您有兩種負載平衡選項。請選擇最符合您環境和需求的選項。舉例來說,您可以選擇需要最少設定的選項。或者,您也可以選擇與網路中現有負載平衡器一致的選項。
可用的選項如下:
隨附 MetalLB
適用於任何第三方負載平衡器 (例如 F5 BIG-IP Citrix) 的手動負載平衡
使用 Google Cloud 控制台、gcloud CLI 或 Terraform 建立使用者叢集時,管理員叢集和使用者叢集的負載平衡器類型必須相同。唯一的例外是,如果管理員叢集使用 Seesaw,使用者叢集就可以使用 MetalLB。如要讓管理員和使用者叢集使用不同類型的負載平衡器,請務必使用 gkectl
指令列工具建立使用者叢集。
MetalLB
MetalLB 負載平衡器隨附於 Google Distributed Cloud,設定起來特別簡單。MetalLB 元件會在叢集節點上執行,因此您不必為負載平衡器建立個別的 VM。
您可以設定 MetalLB 執行 IP 位址管理作業。也就是說,開發人員建立 LoadBalancer
類型的 Service 時,不必為該 Service 指定 VIP。而是從您預先提供的位址集區中,自動選擇 VIP。
詳情請參閱使用 MetalLB 進行套裝組合負載平衡。
Citrix
我們以設定 Citrix 負載平衡器為例,說明如何手動設定負載平衡器。使用手動設定的負載平衡器時,您必須設定 VIP、節點位址和 nodePort
值之間的對應。如要瞭解如何為 Citrix 負載平衡器執行這項操作,請參閱「使用 Citrix 手動平衡負載」一文。
一般手動負載平衡
只要手動設定,您可以使用任何負載平衡器。
使用手動設定的負載平衡器時,您必須設定 VIP、節點位址和 nodePort
值之間的對應。如需一般操作資訊,請參閱「手動負載平衡」。
預留虛擬 IP 位址
無論使用哪種負載平衡器,您都必須預留幾個虛擬 IP 位址 (VIP),以供負載平衡使用。
您必須為管理員叢集預留下列 VIP:
- Kubernetes API 伺服器的 VIP
- 外掛程式的 VIP
針對您要建立的每個使用者叢集,您必須預留下列 VIP:
- Kubernetes API 伺服器的 VIP
- Ingress 服務的 VIP
舉例來說,假設您打算建立兩個使用者叢集。這樣一來,管理員叢集需要兩個虛擬 IP,每個使用者叢集也需要兩個虛擬 IP。因此您需要預留六個 VIP 席位。
節點 IP 位址
如果選擇 MetalLB 做為負載平衡器,您可以為叢集節點使用靜態 IP 位址,也可以讓叢集節點從 DHCP 伺服器取得 IP 位址
如果選擇手動負載平衡選項,叢集節點就必須使用靜態 IP 位址。
如果選擇使用靜態 IP 位址,您必須為管理員叢集中的節點,以及您打算建立的所有使用者叢集中的節點,預留足夠的位址。如要瞭解要預留多少節點 IP 位址,請參閱規劃 IP 位址。
在叢集中建立服務
使用者叢集執行後,應用程式開發人員可能會想建立 Kubernetes Service,並對外部用戶端公開。
如果是 LoadBalancer
類型的服務,則必須在負載平衡器上設定 VIP。這些 VIP 的設定方式取決於您選擇的負載平衡器。
MetalLB
在使用者叢集設定檔中,您可以指定 MetalLB 控制器用來為服務指派 VIP 的位址集區。開發人員建立 LoadBalancer
類型的 Service 時,MetalLB 控制器會從集區中選擇一個位址,然後將該位址指派給 Service。開發人員不必在 Service 資訊清單中指定 loadBalancerIP
的值。
手動設定的負載平衡器
如果您選擇手動負載平衡選項,開發人員可以按照下列步驟,向外部用戶端公開 Service:
建立 NodePort 類型的服務。
選擇服務的 VIP。
手動設定負載平衡器,將傳送至 VIP 的流量轉送至服務。