關於 GKE 服務的利用率型負載平衡器


本頁面介紹 Google Kubernetes Engine (GKE) 服務的用量型負載平衡,這項功能會評估後端 Pod 的資源用量,並根據實際工作負載容量,智慧地重新平衡流量,進而提高應用程式可用性及彈性路由。

本頁內容適用於管理 GKE 服務的雲端架構師和網路專家,他們希望根據即時資源用量,調整流量分配方式。

閱讀本頁面之前,請先熟悉下列概念:

總覽

Cloud Load Balancing 基礎架構會根據標準可存取性指標 (包括 HTTP、HTTPS、HTTP/2 和 gRPC),將流量轉送至 GKE 服務,這些指標會判斷 Pod 的健康狀態和資格。根據預設,系統會將流量轉送至所有運作正常的後端 Pod,並考量 Pod 可用性,以及選用的流量分配政策 (例如 GCPTrafficDistributionPolicy)。

現代應用程式會追蹤 CPU 使用率,方便您瞭解成本、監控效能及有效管理容量。為滿足這項需求,負載平衡器會使用即時資源用量資料做為指標,以便判斷每個後端 Pod 可處理的最佳流量,進而智慧分配流量。

GKE 服務的利用率負載平衡會評估資源利用率指標,判斷後端 Pod 處理應用程式流量的能力。如果一或多個 Pod 的使用率過高,系統就會將流量重新分配給其他後端。

特色與優點

以使用率為基礎的負載平衡具有下列優點:

  • 提高應用程式可用性:後端負載過重時,優先將流量導向資源用量較低的 Pod,有助於維持應用程式效能、避免速度變慢和中斷,並確保使用者享有可靠的體驗。

  • 提供彈性轉送功能:提供額外的一組指標,讓您定義與業務用途完全一致的流量分配政策。

以使用率為基礎的負載平衡運作方式

GKE 服務的利用率負載平衡功能可根據資源負載,更靈活地管理在 GKE 中執行的應用程式流量。您的應用程式會在不同機器的多個執行個體 (Pod) 上執行 GKE。網站流量主要有兩種來源:

  • 從叢集外部 (南北向流量):叢集會接收來自網際網路或其他外部來源的流量,這稱為南北向流量。GKE 代管的負載平衡器 (閘道) 會將這類流量從叢集外部導向。

  • 從叢集內部 (東西向流量):叢集會接收應用程式不同部分之間的流量、來自 GKE 叢集內其他服務的流量,或跨多個叢集的流量。這種內部流量稱為東西向流量。

GKE 服務的負載平衡會根據使用率持續運作,GKE 代理程式會收集 Pod 使用率指標,讓 Cloud Load Balancing 基礎架構智慧地分配流量。以下步驟摘要說明 GKE 服務如何根據即時資源用量,透過以用量為準的負載平衡管理應用程式流量:

  1. 使用應用程式負載平衡器 (閘道) 設定 GKE Service 時,GKE 會自動為每個區域建立 NEG,並將應用程式的 Pod 指派給這些 NEG。一開始,流量分配會依據基本健康狀態檢查和預設設定。

  2. 您將 GKE 服務設為使用資源用量 (例如 CPU) 做為負載平衡的重要指標。

  3. 專屬的 GKE 代理程式會持續監控 Pod 資源用量 (例如 CPU),並定期將這項資料傳送至 Cloud Load Balancing 基礎架構。如果 Pod 含有多個容器,代理程式會計算這些容器的合併使用率。

  4. Cloud Load Balancing 基礎架構會分析即時使用率資料,動態調整流量分配。這項功能會評估各組 Pod (每個區域 NEG) 的平均資源用量 (例如 CPU 負載) 和其他因素 (例如網路延遲),決定要將多少流量傳送至各組 Pod。這個程序會自動將流量從負載較高的 Pod 轉移至負載較低的 Pod,確保最接近的區域能有效運用資源。

以下範例說明如何根據使用率進行負載平衡。

範例:處理過度使用的 Pod

如果 Service 在同一個 Pod 中執行多個容器,GKE 指標代理程式會分別回報每個容器的資源用量。接著,Cloud Load Balancing 基礎架構會計算這些使用率的加權平均值,得出 Pod 的總容量。

根據使用率為 GKE 服務進行負載平衡。
圖 1: 在 GKE 代管的負載平衡器設定中,根據後端 CPU 使用率進行智慧型流量分配。

圖 1 顯示 Cloud Load Balancing 如何使用 GKE 的即時 CPU 使用率指標,在多個可用區部署的 Pod 之間,最佳化流量分配。用戶端要求會透過 GKE Gateway 轉送至後端 Pod,這些 Pod 會依三個區域分組至 NEG。

  • 在區域 1 中,Pod 報告的 CPU 使用率為 90%。負載平衡器會減少傳送至這個 Pod 的流量,避免過載。

  • 在第 2 區,Pod 的 CPU 使用率為 60%,流量持續湧入。

  • 在第 3 區,Pod 報告的 CPU 使用率偏低 (40%),可能收到更多流量。GKE 會持續將中繼資料和使用率指標傳送至 Cloud Load Balancing 基礎架構,後者會智慧調整流量路徑,確保應用程式效能和可用性。

假設您將服務的 CPU 使用率上限設為 80%,如果第 1 區的 Pod 回報 CPU 使用率為 90%,超過門檻,就會發生下列情況:

  1. Cloud Load Balancing 基礎架構會偵測到這種過度使用情況。
  2. 接著,系統會智慧地重新平衡流量,並減少傳送至第 1 區 Pod 的流量。直到該區域的 Pod 平均 CPU 使用率降回 80% 使用率門檻以下,重新平衡作業才會停止。
  3. 由於第 1 區的 Pod 回報 CPU 使用率較低 (低於 80% 門檻),Cloud Load Balancing 基礎架構會重新評估流量分配。然後,系統會逐步重新平衡支援服務的所有 Pod 流量,並根據使用率繼續有效分配流量。

後續步驟