應用程式負載平衡器總覽

應用程式負載平衡器是以 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
    傳統版

    全球性進階級

    標準級地區性

    EXTERNAL* 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 軟體啟用進階流量管理功能。

這些負載平衡器可在下列任一模式中部署:全域、區域或傳統

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

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

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

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

內部應用程式負載平衡器

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

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

  • 地區政策:在後端執行個體群組或網路端點群組中,您可以設定要求如何分配給成員執行個體或端點。詳情請參閱「流量管理」。
  • 全域存取權。啟用全域存取權後,任何區域的用戶端都能存取負載平衡器。詳情請參閱「啟用全球存取權」。
  • 透過已連結的網路存取您可以讓負載平衡器可供客戶從其自有的 Google Cloud虛擬私有雲 (VPC) 網路以外的網路存取。其他網路必須使用 VPC 網路對等互連、Cloud VPN 或 Cloud Interconnect,才能連線至負載平衡器的 VPC 網路。詳情請參閱「存取已連結的網路」。
  • 使用 Ingress (完全自動化調度管理) 與 GKE 相容。詳情請參閱「設定內部應用程式負載平衡器的 Ingress」。
  • App Hub 支援區域性內部應用程式負載平衡器,目前處於預覽階段
內部應用程式負載平衡器架構。
內部應用程式負載平衡器架構。

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

用途

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

三層式網路服務

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

  • 網頁層級:應用程式的前端由外部應用程式負載平衡器提供,該負載平衡器具有執行個體群組後端。流量會從網際網路進入,並從負載平衡器轉送至位於不同區域的一組執行個體群組後端。這些後端會將 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 函式和 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」。

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

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

如要進一步瞭解備援機制的運作方式,請參閱下列主題: