本頁面概略說明 Google Kubernetes Engine (GKE) 如何建立及管理 Cloud Load Balancing。本頁面假設您已瞭解下列事項:
- Cloud de Confiance by S3NS 負載平衡器類型
- 第 4 層 (網路負載平衡器) 和第 7 層 (應用程式負載平衡器) 負載平衡器的差異
本頁面適用於為組織設計及建構網路的雲端架構師和網路專家。如要進一步瞭解 Cloud de Confiance 內容中提及的常見角色和工作範例,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
GKE 建立負載平衡器的方式
如要讓叢集外部 (外部使用者) 或私人網路內部 (內部使用者) 存取應用程式,您可以使用 Gateway、Ingress 和 Service API 佈建負載平衡器,藉此公開應用程式。或者,您也可以自行建立負載平衡器元件,而 GKE 會管理網路端點群組 (NEG),將負載平衡器連至叢集中的 Pod。
閘道
GKE Gateway 控制器是 Google 實作的 Kubernetes Gateway API,適用於 Cloud Load Balancing。Gateway API 是開放原始碼專案,旨在將服務網格和 Ingress 控制器在 Kubernetes 中公開應用程式的方式標準化。Gateway API 的設計宗旨是成為 Ingress 資源的後繼者,提供更豐富的表達能力、彈性和擴充性。
GKE Gateway 控制器用於設定第 7 層應用程式負載平衡器,將 HTTP(S) 流量公開給叢集中執行的應用程式。
使用 Gateway API 實作負載平衡器。
輸入
GKE Ingress 控制器是 Google 實作的 Ingress API。Ingress API 可讓您管理叢集中執行服務的外部存取權。在 GKE 中建立 Ingress 資源時,控制器會自動設定第 7 層應用程式負載平衡器,允許 HTTP 或 HTTP(S) 流量連線至叢集中執行的應用程式。
對於需要進階流量管理、多通訊協定支援或更優異多租戶的新部署和應用程式,建議選擇 GKE 閘道。不過,GKE Ingress 適用於較簡單的 HTTP/HTTPS 轉送情境,尤其是現有設定,因為遷移至 Gateway API 的好處可能還不足以抵銷所需投入的心力。
LoadBalancer Service
Service API 可讓您將叢集中以 Pod 形式執行的應用程式,公開給外部或內部流量。建立 LoadBalancer 類型的 Service 時,GKE 會根據 Service 資訊清單的參數,自動建立第 4 層 (TCP/UDP) 直通式網路負載平衡器。
在直通式網路負載平衡器中,流量到達後端 VM 時,原始來源和目的地 IP 位址、通訊協定 (例如 TCP 或 UDP) 和通訊埠編號 (如果通訊協定使用這些編號) 保持不變。也就是說,流量會直接傳遞至後端 VM 或 Pod,負載平衡器不會終止連線。後端服務會處理連線終止作業,並確保流量從用戶端流向服務時不會中斷。
加權負載平衡
如果您設定了外部 LoadBalancer 服務,供虛擬私有雲網路和 Cloud de Confiance VM 外部的用戶端存取,則可以啟用加權負載平衡。加權負載平衡會根據每個 GKE 節點上的服務 Pod 數量分配流量,因此與 Pod 數量較少的節點相比,服務 Pod 數量較多的節點會接收較高比例的流量。
獨立的 NEG
在 GKE 中管理負載平衡器的另一種方法,是自行建立負載平衡器元件,並讓 GKE 管理 NEG。這類負載平衡器稱為 Proxy 網路負載平衡器。NEG 可用來代表負載平衡的後端端點群組 (例如 Pod)。
這類負載平衡器僅適用於 TCP 流量。Proxy 網路負載平衡器會將 TCP 流量分配至虛擬私有雲網路或其他雲端環境中的後端。流量會在負載平衡層終止。接著,負載平衡器會與最近的可用後端建立新的 TCP 連線,藉此轉送流量。
什麼是容器原生負載平衡?
容器原生負載平衡的做法是使用 GCE_VM_IP_PORT NEG,將流量平均分配給個別 Pod 的 IP 位址 (而非節點)。GCE_VM_IP_PORT 您可以使用 Compute Engine 虛擬機器 (VM) 的主要內部 IP 位址,或 VM 已設定別名 IP 範圍的其中一個 IP 位址,指定後端端點。
容器原生負載平衡功能適用於所有 GKE 管理的第 7 層負載平衡器,包括 Gateway 和 Ingress,以及獨立 NEG。LoadBalancer 服務不會使用容器原生負載平衡。不過,您可以啟用加權負載平衡,達到類似的功能。
容器原生負載平衡功能有多項優點,包括提升網路效能和改善健康狀態檢查,因為這項功能會直接指定 Pod。詳情請參閱「容器原生負載平衡」。
摘要表格
請參考下表,規劃負載平衡設定。
選擇負載平衡器類型
下表列出特定資源 (Gateway、Ingress 或 LoadBalancer Service) 建立的負載平衡器類型:
| Kubernetes 資源 | 建立的負載平衡器類型 | |
|---|---|---|
| 應用程式負載平衡器 | 直通式網路負載平衡器 | |
| 閘道 | ||
| Ingress | ||
| LoadBalancer Service | ||
選擇負載平衡器的建立方法
下表列出在 GKE 中建立所選負載平衡器的選項:
| 負載平衡器類型 | 建立所選負載平衡器的方法 | |||
|---|---|---|---|---|
| 閘道 | 輸入 | LoadBalancer Service | 獨立的 NEG | |
| 全域外部應用程式負載平衡器 | ||||
| 傳統版外部應用程式負載平衡器 | ||||
| 區域性外部應用程式負載平衡器 | ||||
| 區域性內部應用程式負載平衡器 | ||||
| 跨區域內部應用程式負載平衡器 | ||||
|
Proxy 網路負載平衡器
(所有類型) |
||||
|
直通式網路負載平衡器
(內部和外部) |
||||
後續步驟
- 瞭解 GKE 中的 Gateway API。
- 瞭解 GKE Ingress。
- 瞭解 LoadBalancer Service。