應用程式負載平衡器總覽

應用程式負載平衡器是以 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
    IPv6 (預先發布版)
    傳統版

    進階級的全域

    標準級區域性

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

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

    可以參照 1 到 65535 之間的單一通訊埠。

    跨區域內部*

    進階級 INTERNAL_MANAGED IPv4
    IPv6 (預先發布版)

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

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

外部應用程式負載平衡器

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

這些負載平衡器可以部署在下列其中一種模式:全域、區域性或傳統版。

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

  • IPv6 終止。外部負載平衡器支援 IPv4 和 IPv6 位址,可處理用戶端流量。用戶端的 IPv6 要求會在負載平衡層終止,然後透過 IPv4 或 IPv6 (前提是後端已設為雙重堆疊) 連線,以 Proxy 方式傳送至後端。請注意,傳統版負載平衡器僅支援透過 IPv4 將流量傳送至後端。
  • 進階流量管理。功能包括流量鏡像、依權重拆分流量,以及依據要求/回應轉換標頭。詳情請參閱「流量管理總覽」。
  • 支援多種後端。將流量平衡負載至託管於各種 Google Cloud 平台的後端,例如 Compute Engine、Google Kubernetes Engine (GKE)、Cloud Run 等。後端支援取決於負載平衡器的部署模式。詳情請參閱「外部應用程式負載平衡器總覽」。
  • 快取回應。與 Cloud CDN 整合,可快取回應。
  • 與 Cloud Armor 整合。使用 Google Cloud Armor,防範 DDoS 或其他網路攻擊。
  • GKE 整合。支援使用 Ingress 或閘道 (完全自動調度管理) 或獨立 NEG,對 GKE 進行負載平衡。
  • 在 App Hub 應用程式中,整理全域、區域和跨區域應用程式負載平衡器,以及 Proxy 網路負載平衡器,瞭解負載平衡器互動情形,並支援業務功能。

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

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

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

內部應用程式負載平衡器

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

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

  • IPv6 終止。內部負載平衡器支援透過 IPv4 和 IPv6 位址傳輸用戶端流量。用戶端的 IPv6 要求會在負載平衡層終止,然後透過 IPv4 或 IPv6 (前提是後端已設為雙堆疊) 連線,以 Proxy 方式傳送至後端。
  • 地區政策。在後端執行個體群組或網路端點群組中,您可以設定要求如何分配給成員執行個體或端點。詳情請參閱「流量管理」。
  • 全域存取權。啟用全域存取權後,任何區域的用戶端都能存取負載平衡器。詳情請參閱「啟用全域存取權」。
  • 從連結的網路存取。您可以讓負載平衡器可供其 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 bucket 處理任何靜態影片內容,並使用執行個體群組或 NEG 處理所有其他要求。
  • 部署新版應用程式時,您可以採用權重式流量拆分機制,降低風險。舉例來說,您可以將 95% 的流量傳送至舊版服務,並將 5% 的流量傳送至新版服務。確認新版本運作正常後,您可以逐步調整百分比,直到 100% 的流量都導向新版服務。流量拆分通常用於部署新版本、A/B 測試、服務遷移、現代化舊版服務,以及類似程序。

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

使用內部應用程式負載平衡器,依據路徑轉送。
使用內部應用程式負載平衡器的路徑型轉送。

詳情請參閱下列資源:

使用 Service Extensions 進行擴充

與 Service Extensions 整合後,您就能將自訂邏輯插入支援的應用程式負載平衡器的負載平衡路徑。

詳情請參閱「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:通訊埠或 IP:通訊埠端點。網際網路 NEG 可以是全域或區域性。

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

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

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

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

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

    外部

    使用全域外部應用程式負載平衡器建立混合式連線。
    使用全域外部應用程式負載平衡器的混合式連線能力。

    內部

    使用內部應用程式負載平衡器建立混合式連線能力。
    使用內部應用程式負載平衡器的混合式連線能力。

    詳情請參閱「混合型 NEG 總覽」。

與 Private Service Connect 整合

Private Service Connect 可讓您在屬於不同群組、團隊、專案或組織的虛擬私有雲網路中,私下使用服務。您可以使用 Private Service Connect,存取 Google API 和服務,或另一個虛擬私有雲網路中的代管服務。

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

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

高可用性和容錯移轉

跨區域容錯移轉功能適用於全域外部應用程式負載平衡器、傳統版應用程式負載平衡器,以及跨區域內部應用程式負載平衡器。建立全域後端服務時,如果後端位於多個區域,這些負載平衡器可提高服務可用性。如果特定區域的後端發生故障,流量會順利容錯移轉至其他區域。

您也可以使用 Cloud DNS 路由政策和健康狀態檢查,在負載平衡器層級設定高可用性和容錯移轉。

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