應用程式負載平衡器總覽

應用程式負載平衡器是以 Proxy 為基礎的第 7 層負載平衡器,可讓您執行服務及調度服務資源。應用程式負載平衡器會將 HTTP 和 HTTPS 流量分配給託管於各種 Google Cloud 平台 (例如 Compute Engine、Google Kubernetes Engine (GKE)、Cloud Storage 和 Cloud Run) 的後端,以及透過網際網路或混合式連線連線的外部後端。

應用程式負載平衡器可透過下列部署模式使用:

  • 外部應用程式負載平衡器:為來自網際網路用戶端的流量進行負載平衡。如需架構詳細資料,請參閱外部應用程式負載平衡器架構

    部署模式 網路服務級別 負載平衡架構 IP 位址 前端通訊埠
    全域外部 進階級 EXTERNAL_MANAGED IPv4
    IPv6

    可參考介於 1 至 65535 之間的單一通訊埠。

    區域型外部 進階或標準級 EXTERNAL_MANAGED IPv4
    傳統版

    全球性進階級

    標準級的區域

    外部* IPv4
    IPv6 (需要進階級)
    * 您可以將EXTERNAL_MANAGED後端服務附加至EXTERNAL轉送規則。不過,EXTERNAL後端服務無法附加至EXTERNAL_MANAGED轉送規則。如要使用全域外部應用程式負載平衡器專屬的新功能,建議您按照「從傳統版遷移至全域外部應用程式負載平衡器」一文所述的遷移程序,將現有的 EXTERNAL 資源遷移至 EXTERNAL_MANAGED
  • 內部應用程式負載平衡器:在 VPC 網路或連線至 VPC 網路的網路中,平衡流量負載。如需架構詳細資料,請參閱內部應用程式負載平衡器架構

    部署模式 網路服務級別 負載平衡架構 IP 位址 前端通訊埠
    區域型內部 進階級 INTERNAL_MANAGED IPv4

    可參考介於 1 至 65535 之間的單一通訊埠。

    跨區域內部*

    進階級 INTERNAL_MANAGED IPv4

    * 負載平衡器會使用全域資源,並可部署在您選擇的一或多個 Google Cloud 區域。

負載平衡架構是負載平衡器的轉送規則後端服務中的屬性,用於指明負載平衡器可否處理內部或外部流量。負載平衡架構中的 _MANAGED 一詞,表示負載平衡器已在 Google Front Ends (GFE) 或開放原始碼 Envoy Proxy 中做為代管服務運用。在 _MANAGED 負載平衡架構中,要求會轉送至 GFE 或 Envoy Proxy。

外部應用程式負載平衡器

外部應用程式負載平衡器是使用 Google Front End (GFE) 或受管理 Proxy 導入。全域外部應用程式負載平衡器和傳統版應用程式負載平衡器使用 遍布全球的 GFE,透過 Google 的全球網路和控制層互相搭配運作。在進階級中,GFE 提供多地區負載平衡功能,將流量導向具有容量且健康狀態良好的最近後端,並盡可能從最靠近使用者的位置終止 HTTP(S) 流量。全域外部應用程式負載平衡器和區域性外部應用程式負載平衡器會使用開放原始碼 Envoy Proxy 軟體,啟用進階流量管理功能。

這些負載平衡器可以下列模式之一部署:全域、區域或傳統版

外部應用程式負載平衡器支援下列功能:

  • 進階流量管理,例如流量鏡射、根據權重拆分流量,以及根據要求/回應轉換標頭。詳情請參閱「流量管理總覽」。
  • 將流量負載平衡至各種平台 (例如 Compute Engine、Google Kubernetes Engine (GKE)、Cloud Run 等) 上代管的後端。 Google Cloud後端支援取決於負載平衡器的部署模式。詳情請參閱「外部應用程式負載平衡器總覽」。
  • 使用 Cloud CDN 快取回應。
  • 使用 Google Cloud Armor 防範 DDoS 或其他網路攻擊。
  • 使用 Ingress 或 Gateway (完全協調)獨立 NEG,將負載平衡至 GKE。
  • App Hub 應用程式中整理區域性外部應用程式負載平衡器,瞭解區域性外部應用程式負載平衡器互動情形,並支援業務功能。

下圖顯示外部應用程式負載平衡器的範例架構。

外部應用程式負載平衡器架構。
外部應用程式負載平衡器架構。

如需完整總覽,請參閱外部應用程式負載平衡器架構總覽

內部應用程式負載平衡器

內部應用程式負載平衡器是以 Envoy Proxy 為基礎的區域性第 7 層負載平衡器,可讓您透過內部 IP 位址執行及擴充 HTTP 應用程式流量。內部應用程式負載平衡器支援單一區域的後端,但可設定為供任何Google Cloud 區域的用戶端全域存取。

負載平衡器會將流量分配給 Google Cloud、地端部署環境或其他雲端環境中託管的後端。內部應用程式負載平衡器也支援下列功能:

  • 地區政策。在後端執行個體群組或網路端點群組中,您可以設定要求如何分配給成員執行個體或端點。詳情請參閱「流量管理」。
  • 全球存取權。啟用全域存取權後,任何區域的用戶端都能存取負載平衡器。詳情請參閱「啟用全域存取權」。
  • 從已連線的網路存取。您可以讓負載平衡器可供網路中的用戶端存取,而不僅限於負載平衡器本身的 Google Cloud虛擬私有雲 (VPC) 網路。其他網路必須使用虛擬私有雲網路對等互連、Cloud VPN 或 Cloud Interconnect,連線至負載平衡器的虛擬私有雲網路。詳情請參閱「存取連線的網路」。
  • 使用 Ingress (完全自動化調度管理),與 GKE 相容。詳情請參閱設定內部應用程式負載平衡器的 Ingress
  • App Hub 應用程式中整理區域內部應用程式負載平衡器,瞭解區域內部應用程式負載平衡器互動情形,並支援業務功能。
內部應用程式負載平衡器架構。 內部應用程式負載平衡器架構。

如需完整總覽,請參閱內部應用程式負載平衡器架構總覽

用途

以下各節說明應用程式負載平衡器的常見用途。

三層式網路服務

您可以部署應用程式負載平衡器和網路負載平衡器,支援傳統的三層式網路服務。以下範例說明如何根據流量類型部署各層級:

  • 網頁層級。應用程式的前端是由外部應用程式負載平衡器提供服務,流量從網際網路進入,並從負載平衡器 Proxy 到不同區域的一組執行個體群組後端。這些後端會將 HTTP(S) 流量傳送到一組內部應用程式負載平衡器。
  • 應用程式層。應用程式的中介軟體會透過內部應用程式負載平衡器和執行個體群組後端部署及擴充。負載平衡器會將流量分配給中介軟體執行個體群組。這些中介軟體執行個體群組接著會將流量傳送至內部直通式網路負載平衡器。
  • 資料庫層級。網路負載平衡器是資料庫層的前端。將流量分配至不同區域的資料儲存後端。
三層式網頁應用程式中採用第 7 層負載平衡的轉送路徑。
三層式網頁應用程式中採用第 7 層負載平衡的轉送路徑。

區域性內部應用程式負載平衡器的全域存取權

如果為區域性內部應用程式負載平衡器啟用全域存取權,網頁層用戶端 VM 可以位於其他區域。

這個多層式應用程式範例會顯示下列內容:

  • 可供全球存取的網際網路連線網路層級,使用外部應用程式負載平衡器進行流量負載平衡。
  • us-east1 區域中的內部後端負載平衡資料庫層,可供全域網路層存取。
  • 用戶端 VM 是 europe-west1 地區網路層的一部分,可存取位於 us-east1 的內部負載平衡資料庫層。
三層式網頁應用程式,具有外部應用程式負載平衡器、全域存取權和內部應用程式負載平衡器。
三層式網頁應用程式,具有外部應用程式負載平衡器、全域存取權和內部應用程式負載平衡器 (按一下可放大)。

必須符合管轄區規定的工作負載

部分工作負載有法規或法規遵循要求,因此網路設定和流量終止必須位於特定區域。對於這些工作負載,區域性外部應用程式負載平衡器通常是較好的選擇,可提供這些工作負載所需的管轄權控制。

進階流量管理

應用程式負載平衡器支援進階流量管理功能,可協助您精細控管流量的處理方式。這些功能包括:

  • 您可以更新流量管理方式,不必修改應用程式程式碼。
  • 您可以根據 HTTP(S) 參數 (例如主機、路徑、標頭和其他要求參數) 智慧地轉送流量。舉例來說,您可以使用 Cloud Storage 值區處理所有靜態影片內容,並使用執行個體群組或 NEG 處理所有其他要求。
  • 部署新版應用程式時,您可以透過權重式流量分割功能降低風險。舉例來說,您可以將 95% 的流量傳送到舊版服務,而將 5% 的流量傳送給新版服務。確認新版本運作正常後,即可逐步調整百分比,直到 100% 的流量都導向新版服務。流量拆分通常用於部署新版本、A/B 測試、服務遷移、更新舊版服務和類似程序。

以下是使用內部應用程式負載平衡器實作路徑式路由的範例。每個路徑都由不同的後端處理。

使用內部應用程式負載平衡器進行路徑式路由。
使用內部應用程式負載平衡器進行路徑型轉送。

詳情請參閱下列說明:

透過 Service Extensions 擴充功能

服務擴充功能整合後,您就能將自訂邏輯插入支援的應用程式負載平衡器負載平衡路徑。

詳情請參閱服務擴充功能總覽

將舊版服務遷移至 Google Cloud

將現有服務遷移至 Google Cloud ,可釋放內部部署容量,並降低維護內部部署基礎架構的成本和負擔。您可以暫時設定混合式部署,將流量轉送至目前的內部部署服務和對應的 Google Cloud 服務端點。

下圖顯示使用內部應用程式負載平衡器的設定。如果您使用內部負載平衡器,可以設定 Google Cloud 負載平衡器,使用權重式流量分配功能,將流量分配到這兩項服務。您可以先將 0% 的流量傳送至Google Cloud 服務,並將 100% 的流量傳送至內部部署服務,然後逐步增加傳送至 Google Cloud服務的流量比例。最終,您會將 100% 的流量傳送至 Google Cloud服務,並淘汰地端服務。

將舊版服務遷移至 Google Cloud。
將舊版服務遷移至 Google Cloud。

GKE 應用程式的負載平衡

您可以透過下列三種方式,為 GKE 叢集部署應用程式負載平衡器:

  • GKE Gateway 控制器僅適用於全域外部應用程式負載平衡器、傳統版應用程式負載平衡器和區域內部應用程式負載平衡器。如需設定操作說明,請參閱「部署閘道」。
  • GKE Ingress 控制器您可以使用內建的 GKE Ingress 控制器,代表 GKE 使用者部署Google Cloud 負載平衡器。這與獨立負載平衡架構相同,但生命週期完全自動化,並由 GKE 控制。外部和內部應用程式負載平衡器皆支援這項功能。如需設定操作說明,請參閱下列文章:
  • 獨立的區域性 NEG 獨立 NEG 是透過 GKE NEG 控制器部署及管理,但所有負載平衡資源 (轉送規則、健康狀態檢查等) 都是手動部署。外部和內部應用程式負載平衡器都支援這些功能。

Cloud Run、Cloud Run functions 和 App Engine 應用程式的負載平衡

您可以將應用程式負載平衡器做為Google Cloud 無伺服器應用程式的前端。您可以將無伺服器應用程式設為透過專屬 IP 位址處理要求,該位址不會與任何其他服務共用。

如要進行這項設定,請使用無伺服器 NEG 做為負載平衡器的後端。下圖顯示無伺服器應用程式如何與應用程式負載平衡器整合。

全域外部

下圖顯示無伺服器 NEG 在全域外部應用程式負載平衡器架構中的位置。

無伺服器應用程式的全域外部應用程式負載平衡器架構。
無伺服器應用程式的全球外部應用程式負載平衡器架構。

區域型外部

這張圖表顯示無伺服器 NEG 在區域性外部應用程式負載平衡器架構中的位置。這個負載平衡器僅支援 Cloud Run 後端。

無伺服器應用程式的區域性外部應用程式負載平衡器架構。 無伺服器應用程式的區域性外部應用程式負載平衡器架構。

區域型內部

下圖顯示無伺服器 NEG 在區域內部應用程式負載平衡器模型中的位置。這個負載平衡器僅支援 Cloud Run 後端。

無伺服器應用程式的區域性內部應用程式負載平衡器架構。
無伺服器應用程式的區域性內部應用程式負載平衡器架構。

跨區域內部

這張圖表顯示無伺服器 NEG 在跨區域內部應用程式負載平衡器模型中的位置。這個負載平衡器僅支援 Cloud Run 後端。

無伺服器應用程式的跨區域內部應用程式負載平衡器架構。
無伺服器應用程式的跨區域內部應用程式負載平衡器架構 (按一下即可放大)。

相關說明文件:

負載平衡至外部後端 Google Cloud

應用程式負載平衡器支援將流量負載平衡至 Google Cloud以外的端點,例如內部部署資料中心和其他雲端環境。外部後端通常可透過下列任一方式存取:

  • 可透過公用網際網路存取。對於這些端點,您可以使用網際網路 NEG 做為負載平衡器的後端。網際網路 NEG 設定為指向外部後端的單一 FQDN:Port 或 IP:Port 端點。網際網路 NEG 可以是全域或區域。

    下圖說明如何使用全域網際網路 NEG,連線至可透過公開網際網路存取的外部後端。

    全域外部應用程式負載平衡器,具有外部後端。
    具有外部後端的全域外部應用程式負載平衡器。

    詳情請參閱「網際網路 NEG 總覽」。

  • 可透過混合式連線 (Cloud Interconnect 或 Cloud VPN) 存取。對於這些端點,您可以使用混合式 NEG 做為負載平衡器的後端。混合式 NEG 設定為指向外部後端的 IP:Port 端點。

    下圖說明如何連線至可透過 Cloud Interconnect 或 Cloud VPN 存取的外部後端。

    外部

    透過全域外部應用程式負載平衡器實現混合式連線。
    透過全域外部應用程式負載平衡器進行混合式連線。

    內部

    透過內部應用程式負載平衡器進行混合式連線。
    透過內部應用程式負載平衡器進行混合式連線。

    詳情請參閱混合型 NEG 總覽

與 Private Service Connect 整合

Private Service Connect 可讓您在屬於不同群組、團隊、專案或機構的 VPC 網路之間,私下使用服務。您可以使用 Private Service Connect 存取其他虛擬私有雲網路中的 Google API 和服務,或代管服務。

您可以使用全域外部應用程式負載平衡器,存取透過 Private Service Connect 發布的服務。詳情請參閱「關於 Private Service Connect 後端」一文。

您可以透過內部應用程式負載平衡器,將要求傳送至支援的區域性 Google API 和服務。詳情請參閱「透過後端存取 Google API」。

高可用性和跨區域容錯移轉

跨區域容錯移轉僅適用於全域外部應用程式負載平衡器、傳統版應用程式負載平衡器,以及跨區域內部應用程式負載平衡器。建立後端位於多個區域的全域後端服務時,這些負載平衡器可協助您提升服務可用性。如果特定區域的後端服務停止運作,流量會順利容錯移轉至其他區域。

如要進一步瞭解容錯移轉的運作方式,請參閱下列主題: