Cloud Load Balancing 總覽

負載平衡器會在應用程式的多個執行個體之間分配使用者流量。以負載平衡機制分配流量,即可降低應用程式發生效能問題的風險。Google 的 Cloud Load Balancing 採用可靠的高效能技術,例如 Maglev、Andromeda、Google Front End 和 Envoy,這些技術也用於 Google 自家產品。

Cloud Load Balancing 提供完整的應用程式和網路負載平衡器組合。使用我們的全域 Proxy 負載平衡器,透過全球超過 80 個不同位置的 Google Front End 機群,在多個區域的後端之間分配每秒數百萬個要求,且全部使用單一任意傳播 IP 位址。使用區域性 Proxy 負載平衡器,實施嚴格的管轄權控制,將後端和 Proxy 保持在您選擇的區域,不必擔心 TLS/SSL 卸載。使用我們的直通式負載平衡器,快速將多種通訊協定轉送至後端,並享有直接伺服器回傳 (DSR) 的高效能。

Cloud Load Balancing 總覽。
Cloud Load Balancing 總覽 (按一下即可放大)。

Cloud Load Balancing 的主要功能

Cloud Load Balancing 提供下列負載平衡器功能:

  • 單一任意傳播 IP 位址:Cloud Load Balancing 服務利用單一任意傳播 IP 位址,做為全球各地的所有後端執行個體的前端。這項服務提供跨區域負載平衡,包括自動多區域容錯移轉功能。如果主要後端健康狀態不佳,這項功能會將流量移至容錯移轉後端。Cloud Load Balancing 能立即因應使用者、流量、網路、後端健康狀態和其他相關條件的變化。

  • 順暢無比的自動調度資源功能。Cloud Load Balancing 服務可以隨著使用者與流量的增加而調度資源。因此,面臨突如其來的尖峰流量時,也能將其導引至其他有能力承接流量的地區。自動調度資源功能不需暖機,只要短短幾秒,就能將服務規模從零擴展到滿檔配置。

  • 軟體定義型負載平衡。Cloud Load Balancing 是完全分散式的軟體定義型代管服務,可以處理所有流量。這項服務不是以執行個體或裝置為基礎的解決方案,因此您不會受制於實體負載平衡基礎架構,也不會面臨執行個體型負載平衡器固有的高可用性、規模和管理問題。

  • 第 4 層和第 7 層負載平衡。使用第 4 層負載平衡,根據 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 等網路和傳輸層通訊協定的資料導向流量。使用第 7 層負載平衡,根據 HTTP 標頭和統一資源 ID 等屬性,新增要求轉送決策。

  • 外部和內部負載平衡。定義負載平衡器是否可用於外部或內部存取。如果用戶端需要透過網際網路連上應用程式,您可以使用「外部」負載平衡器。如果用戶端位於Google Cloud內部,您可以使用「內部」負載平衡器。詳情請參閱「外部與內部負載平衡」。

  • 全域和區域性負載平衡。定義負載平衡器的範圍。「全域」負載平衡器支援多個區域的後端,而「區域性」負載平衡器則支援單一區域的後端。雖然區域性負載平衡器的 IP 位址位於單一區域,但可從全球各地存取。您可以將後端分散到單一或多個區域,在靠近使用者的位置終止連線,並滿足高可用性需求。詳情請參閱「全域與區域性負載平衡」。

  • 進階級和標準級的流量轉送。 Google Cloud 中的負載平衡服務會根據您選擇的網路級別 (即進階級或標準級) 而有所不同,前者的費用高於後者。進階級運用 Google 的優質全球骨幹網路,標準級則使用公開網際網路在網路中轉送流量。選擇網路級別時,請考量企業工作負載的優先要務是成本還是效能。部分負載平衡服務僅適用於進階級,不適用於標準級。詳情請參閱「進階與標準網路服務級別」。

  • 支援進階功能。Cloud Load Balancing 支援 IPv6 負載平衡、依據來源 IP 導引流量、加權負載平衡、WebSocket、使用者定義的要求標頭,以及私人虛擬 IP 位址 (VIP) 的通訊協定轉送等功能。

    此外,這項服務也整合了下列項目:

    • 與 Cloud CDN 整合,可傳遞快取內容。Cloud CDN 支援全域外部應用程式負載平衡器和傳統版應用程式負載平衡器。
    • 與 Google Cloud Armor 整合,保護基礎架構免受分散式阻斷服務 (DDoS) 攻擊和其他針對性應用程式攻擊。如要進一步瞭解負載平衡器可用的 Cloud Armor 功能,請參閱「Cloud Armor 總覽」。
    • 與 Cloud Trace 整合,可根據 OpenTelemetry 和 W3C 追蹤記錄相關資訊,進行端對端分散式追蹤。您可以使用遙測政策,設定負載平衡器轉送規則的追蹤功能。分散式追蹤功能支援全域外部應用程式負載平衡器、區域性外部應用程式負載平衡器、區域性內部應用程式負載平衡器,以及跨區域內部應用程式負載平衡器 (預先發布版)。詳情請參閱「分散式追蹤總覽」。

Google Cloud 負載平衡器的類型

Cloud Load Balancing 提供兩種負載平衡器:應用程式負載平衡器和網路負載平衡器。如果應用程式有 HTTP(S) 流量,且需要第 7 層負載平衡器,請選擇應用程式負載平衡器。如果需要支援 TLS 卸載的第 4 層負載平衡器 (搭配 Proxy 負載平衡器),或需要支援 UDP、ESP 和 ICMP 等 IP 通訊協定 (搭配直通式負載平衡器),請選擇網路負載平衡器。

下表概略說明不同類型的Google Cloud 負載平衡器,並依據運作的 OSI 層,以及用於外部或內部存取進行分類。

lan Cloud Load Balancing 外部
(接受網際網路流量)
內部
(接受內部 Google Cloud 流量)
應用程式負載平衡器

HTTPS
第 7 層負載平衡
  • 全域外部
  • 區域性外部
  • 傳統版
  • 跨區域內部
  • 區域型內部
網路負載平衡器

TCP/SSL/其他
第 4 層負載平衡
Proxy 網路負載平衡器
  • 全域外部
  • 區域性外部
  • 傳統版
  • 跨區域內部
  • 區域型內部
直通式網路負載平衡器
  • 區域型內部

應用程式負載平衡器

應用程式負載平衡器是以 Proxy 為基礎的第 7 層負載平衡器,可讓您透過任意傳播 IP 位址執行服務及調度服務資源。應用程式負載平衡器會將 HTTP 和 HTTPS 流量分配給託管於各種 Google Cloud 平台 (例如 Compute Engine 和 Google Kubernetes Engine (GKE)) 的後端,以及Google Cloud以外的外部後端。

下圖概略說明不同類型的應用程式負載平衡器,可依據應用程式是否對外開放,部署於外部或內部。

不同類型的應用程式負載平衡器
不同類型的應用程式負載平衡器。

外部應用程式負載平衡器是以代管服務的形式,在 Google Front End (GFE) 或 Envoy Proxy 上實作。用戶端可以從網際網路上的任何位置連線至這些負載平衡器。請注意以下事項:

  • 這些負載平衡器可以採用下列模式部署:全域、區域性或傳統版。
  • 全域外部應用程式負載平衡器支援多個區域的後端。
  • 區域性外部應用程式負載平衡器僅支援單一區域中的後端。
  • 傳統版應用程式負載平衡器在進階級中為全域。在標準級中,只能將流量分配到單一區域中的後端。
  • 應用程式負載平衡器使用開放原始碼 Envoy Proxy,提供進階流量管理功能。

內部應用程式負載平衡器是以 Andromeda 網路虛擬化堆疊和開放原始碼 Envoy Proxy 為基礎建構而成。這個負載平衡器提供以 Proxy 為基礎的第 7 層應用程式資料內部負載平衡功能。負載平衡器使用的內部 IP 位址,只能由相同虛擬私有雲網路中的用戶端,或連線至虛擬私有雲網路的用戶端存取。注意事項:

  • 這些負載平衡器可以部署在下列模式:區域性或跨區域。
  • 區域性內部應用程式負載平衡器僅支援單一區域中的後端。
  • 跨區域內部應用程式負載平衡器支援多個區域的後端,且一律可全域存取。任何Google Cloud 區域的用戶端都能將流量傳送至負載平衡器。

如要進一步瞭解應用程式負載平衡器,請參閱「應用程式負載平衡器總覽」。

網路負載平衡器

網路負載平衡器屬於第 4 層負載平衡器,可處理 TCP、UDP 或其他 IP 通訊協定流量。這些負載平衡器分為 Proxy 負載平衡器和直通式負載平衡器。您可以根據應用程式的需求和需要處理的流量類型,選擇負載平衡器。如要設定反向 Proxy 負載平衡器,並支援進階流量控管功能,以及地端部署和其他雲端環境中的後端,請選擇 Proxy 網路負載平衡器。如要保留用戶端封包的來源 IP 位址、偏好直接伺服器回傳回應,或想處理 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 等多種 IP 通訊協定,請選擇直通式網路負載平衡器。

Proxy 網路負載平衡器

Proxy 網路負載平衡器是第 4 層反向 Proxy 負載平衡器,可將 TCP 流量分配至 Google Cloud虛擬私有雲網路中的虛擬機器 (VM) 執行個體。流量會在負載平衡層終止,然後使用 TCP 轉送至最近的可用後端。

下圖概略說明不同類型的 Proxy 網路負載平衡器,可依據應用程式是否對外公開,部署於外部或內部。

不同類型的 Proxy 網路負載平衡器
不同類型的 Proxy 網路負載平衡器。

外部 Proxy 網路負載平衡器是第 4 層負載平衡器,可將來自網際網路的流量分配至 Google Cloud 虛擬私有雲網路、地端部署或其他雲端環境中的後端。這類負載平衡器是以 Google Front End (GFE) 或 Envoy Proxy 建構而成。

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

  • 全域外部 Proxy 網路負載平衡器支援多個區域的後端。
  • 區域性外部 Proxy 網路負載平衡器支援單一區域中的後端。
  • 傳統版 Proxy 網路負載平衡器在進階級中為全域性。在標準級中,只能將流量分配到單一區域中的後端。

內部 Proxy 網路負載平衡器是以 Envoy Proxy 為基礎的區域性第 4 層負載平衡器,可讓您透過內部 IP 位址執行及擴充 TCP 服務流量,且只有相同虛擬私有雲網路中的用戶端,或連線至虛擬私有雲網路的用戶端可以存取。

這些負載平衡器可以採用下列其中一種模式部署:區域性或跨區域。

  • 區域性內部 Proxy 網路負載平衡器僅支援單一區域中的後端。
  • 跨區域內部 Proxy 網路負載平衡器支援多個區域的後端,且一律可全域存取。任何Google Cloud 區域的用戶端都能將流量傳送至負載平衡器。

如要進一步瞭解 Proxy 網路負載平衡器,請參閱「Proxy 網路負載平衡器總覽」。

直通式網路負載平衡器

直通式網路負載平衡器是第 4 層直通式負載平衡器,這些負載平衡器會將流量分配給與負載平衡器位於相同區域或多個區域的後端。這些服務是透過 Andromeda 虛擬網路和 Google Maglev 實作。

顧名思義,這些負載平衡器並非 Proxy。後端 VM 接收負載平衡封包時,封包的來源和目的地 IP 位址、通訊協定,以及來源和目的地通訊埠 (如果通訊協定是以通訊埠為基礎) 都不會變更。負載平衡連線會在後端終止。後端 VM 的回應會直接傳送至用戶端,不會透過負載平衡器傳回。這項技術的業界術語是「伺服器直接回傳」(DSR)。

如下圖所示,這些負載平衡器會根據是否對外公開,以兩種模式部署。

不同類型的直通式網路負載平衡器
不同類型的直通式網路負載平衡器。
  • 外部直通式網路負載平衡器是以高效能 Maglev 負載平衡器為基礎建構而成。用戶端可以從網際網路上的任何位置連線至這些負載平衡器。負載平衡器也可以接收來自具有外部 IP 位址的 Google Cloud VM,或透過 Cloud NAT 或執行個體型 NAT 具備網路連線能力的 Google Cloud VM 流量。

    這些負載平衡器可以採用下列其中一種模式部署:全域或區域。

    • 全域外部直通式網路負載平衡器 (預先發布版) 支援多個區域的後端。全域外部直通式網路負載平衡器的後端只能使用後端服務部署。負載平衡器會提供兩個任意傳播 IP 位址,每個位址都由不相交且隔離的全域負載平衡控制和資料層伺服器基礎架構 (也稱為可用性群組) 提供服務,以提供高可用性。

    • 區域性外部直通式網路負載平衡器僅支援單一區域中的後端。區域性外部直通式網路負載平衡器的後端,可使用後端服務或目標集區部署。如果是新的部署作業,建議使用後端服務。

  • 內部直通式網路負載平衡器是以 Andromeda 網路虛擬化堆疊為基礎建構而成。內部直通式網路負載平衡器可讓您在內部負載平衡 IP 位址後方平衡流量,該 IP 位址只能由相同虛擬私有雲網路中的系統,或連線至虛擬私有雲網路的系統存取。

如要進一步瞭解直通式網路負載平衡器,請參閱「直通式網路負載平衡器」。

Google Cloud 負載平衡器的基礎技術

下表列出各Google Cloud 負載平衡器採用的基礎技術。

  • Google Front End (GFE) 是軟體定義的分散式系統,位於 Google 網路連接點 (PoP),並與其他系統和控制層搭配執行全域負載平衡。
  • Andromeda 是 Google Cloud 的軟體定義網路虛擬化堆疊。
  • Maglev 是網路負載平衡的分散式系統。
  • Envoy 是開放原始碼邊緣和服務 Proxy,專為雲端原生應用程式設計。
負載平衡器 科技
全域外部應用程式負載平衡器 Envoy 型 Google Front-End (GFE)
傳統版應用程式負載平衡器 GFE
區域性外部應用程式負載平衡器 Envoy
跨區域內部應用程式負載平衡器 Envoy
區域性內部應用程式負載平衡器 Envoy
全域外部 Proxy 網路負載平衡器 採用 Envoy 的 GFE
傳統版 Proxy 網路負載平衡器 GFE
區域性外部 Proxy 網路負載平衡器 Envoy
區域性內部 Proxy 網路負載平衡器 Envoy
跨區域內部 Proxy 網路負載平衡器 Envoy
全域外部直通式網路負載平衡器 (預先發布版) Maglev
區域性外部直通式網路負載平衡器 Maglev
內部直通式網路負載平衡器 Andromeda

選取負載平衡器

選擇 Cloud Load Balancing 產品時,您需要先決定負載平衡器所須處理的流量類型。一般來說,如需較具彈性的功能,則應選擇應用程式負載平衡器,以便處理含有 HTTP(S) 流量的應用程式。如要大規模執行 TLS 卸載作業、支援 UDP,或需要向應用程式提供用戶端 IP 位址,則可選用網路負載平衡器。

您還可以根據應用程式需求進一步縮減選項:例如您的應用程式是內部應用程式,或是連結網際網路的外部應用程式;您需要在全球或特定區域部署後端服務;以及您需要進階或標準網路服務級別。

下圖顯示 Cloud Load Balancing 所有可用的部署模式。詳情請參閱「選擇負載平衡器」指南。

選擇負載平衡器。
選擇負載平衡器 (按一下即可放大)。

1. 全域外部應用程式負載平衡器支援兩種作業模式:全域和傳統版。

2. 全域外部 Proxy 網路負載平衡器支援兩種 運作模式:全域和傳統。

3. 直通式網路負載平衡器會保留用戶端來源 IP 位址。直通式網路負載平衡器也支援 UDP、ESP 和 ICMP 等其他通訊協定。

Google Cloud 負載平衡器類型摘要

下表提供詳細資料,例如各負載平衡器運作的網路服務級別,以及負載平衡配置。

負載平衡器 部署模式 流量類型 網路服務級別 負載平衡架構1
應用程式負載平衡器 全域外部 HTTP 或 HTTPS 進階級 EXTERNAL_MANAGED
區域性外部 HTTP 或 HTTPS 進階級或標準級 EXTERNAL_MANAGED
經典 HTTP 或 HTTPS

進階級的全域

標準級區域性

外部2
區域性內部3 HTTP 或 HTTPS 進階級 INTERNAL_MANAGED
跨區域內部 HTTP 或 HTTPS 進階級 INTERNAL_MANAGED
Proxy 網路負載平衡器 全域外部 具備 SSL 卸載機制 (選用) 的 TCP 進階級 EXTERNAL_MANAGED
區域性外部 TCP 進階級或標準級 EXTERNAL_MANAGED
經典 具備 SSL 卸載機制 (選用) 的 TCP

進階級的全域

標準級區域性

EXTERNAL
區域性內部3 不具備 SSL 卸載機制的 TCP 進階級 INTERNAL_MANAGED
跨區域內部 不具備 SSL 卸載機制的 TCP 進階級 INTERNAL_MANAGED
直通式網路負載平衡器

全域外部 (預先發布版)

TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 進階級 EXTERNAL_PASSTHROUGH

區域性外部

TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 進階級或標準級 EXTERNAL

內部3

一律為區域性

TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE 進階級 INTERNAL

1 負載平衡架構是負載平衡器轉送規則和後端服務中的屬性,用於指明負載平衡器可否處理內部或外部流量。

EXTERNAL_MANAGED 或 INTERNAL_MANAGED 中的「代管」一詞,表示負載平衡器是以代管服務的形式,在 Google Front End (GFE) 或開放原始碼 Envoy Proxy 上實作。在代管負載平衡架構中,系統會將要求轉送至 GFE 或 Envoy Proxy。

2 您可以將 EXTERNAL_MANAGED 後端服務附加至 EXTERNAL 轉送規則。不過,EXTERNAL 後端服務無法附加至 EXTERNAL_MANAGED 轉送規則。如要使用僅限全域外部應用程式負載平衡器的新功能,建議您按照「將資源從傳統版遷移至全域外部應用程式負載平衡器」一文所述的遷移程序,將現有的 EXTERNAL 資源遷移至 EXTERNAL_MANAGED。

3 根據預設,區域性內部負載平衡器只允許來自與負載平衡器位於相同區域的用戶端流量。不過,您可以在轉送規則啟用全域存取權,允許其他區域的用戶端流量。

介面

您可以使用下列介面設定及更新負載平衡器:

  • Google Cloud CLI:Google Cloud CLI 隨附的指令列工具。說明文件經常會提到這項工具,用於完成各項工作。如需這項工具的完整總覽,請參閱 gcloud CLI 指南。您可以在 gcloud compute 指令群組中找到與負載平衡相關的指令。

    您也可以使用 --help 旗標,取得任何 gcloud 指令的詳細說明。

    gcloud compute http-health-checks create --help
    
  • Google Cloud 控制台:您可以使用Google Cloud 控制台完成負載平衡工作。

  • REST API:所有負載平衡工作都能透過 Cloud Load Balancing API 完成。API 參考資料說明可用的資源和方法。

  • Terraform:您可以使用 Terraform 等開放原始碼基礎架構即程式碼工具,佈建、更新及刪除 Google Cloud負載平衡基礎架構。

後續步驟