Cloud Load Balancing 總覽

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

Cloud Load Balancing 提供完整的應用程式和網路負載平衡器組合。使用我們的全球 Proxy 負載平衡器,透過全球 80 多個不同地點的 Google 前端機群,在多個地區的後端之間分散每秒數百萬個要求,而且只需使用單一 Anycast IP 位址即可。透過區域 Proxy 負載平衡器實施強大的管轄區控管機制,將後端和 Proxy 保留在您選擇的區域,不必擔心 TLS/SSL 卸載問題。使用我們的直通負載平衡器,快速將多個通訊協定路由至後端,並享有直接伺服器傳回 (DSR) 的高效能。

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

Cloud Load Balancing 的主要功能

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

  • 單一 Anycast IP 位址。在 Cloud Load Balancing 中,單一 Anycast 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) 攻擊和其他鎖定應用程式攻擊的侵擾。全域外部應用程式負載平衡器、傳統版應用程式負載平衡器、外部 Proxy 網路負載平衡器和外部直通式網路負載平衡器,皆提供一律啟用的 DDoS 保護功能。此外,Google Cloud Armor 只支援外部直通式網路負載平衡器的進階網路分散式阻斷服務防護功能。詳情請參閱「設定進階的網路分散式阻斷服務防護功能」。

Google Cloud 負載平衡器類型

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

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

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

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

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

應用程式負載平衡器

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

下圖概略說明瞭不同類型的應用程式負載平衡器,可視應用程式是面向網際網路或內部而部署在外部或內部。

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

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

  • 這些負載平衡器可在全域、區域或傳統模式中部署。
  • 全域外部應用程式負載平衡器支援多個區域的後端。
  • 區域性外部應用程式負載平衡器僅支援單一區域的後端。
  • 傳統版應用程式負載平衡器是進階級的全球服務。在標準級別中,負載平衡器只能將流量分配到單一地區的後端。
  • 應用程式負載平衡器會使用開源 Envoy Proxy,啟用進階流量管理功能

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

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

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

網路負載平衡器

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

Proxy 網路負載平衡器

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

下圖概略說明不同類型的 Proxy 網路負載平衡器,可視應用程式是面向網際網路或內部而部署在外部或內部。

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

外部 Proxy 網路負載平衡器是第 4 層負載平衡器,可將來自網際網路的流量分配給 Google Cloud VPC 網路、內部部署或其他雲端環境中的後端。這些負載平衡器是建構在 Google Front End (GFEs)Envoy Proxy 上。

這些負載平衡器可在全域、區域或傳統模式中部署。

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

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

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

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

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

直通式網路負載平衡器

直通式網路負載平衡器是第 4 層區域性直通式負載平衡器。這些負載平衡器會將流量分配給與負載平衡器位於相同區域的後端。這些功能是使用 Andromeda 虛擬網絡和 Google Maglev 實作。

顧名思義,這些負載平衡器不是 Proxy。後端 VM 會收到負載平衡的封包,其中包含封包的來源和目的地 IP 位址、通訊協定,以及如果通訊協定是基於通訊埠,則來源和目的地通訊埠不變。負載平衡的連線會在後端終止。來自後端 VM 的回應會直接傳送至用戶端,而不會返回經過負載平衡器。業界稱這種機制為「伺服器直接回傳」(DSR)。

如下圖所示,這些負載平衡器會以兩種模式部署,取決於負載平衡器是面向網際網路還是內部。

不同類型的直通式網路負載平衡器
不同類型的直通式網路負載平衡器。
  • 外部直通式網路負載平衡器是建構在 Maglev 上。無論網路服務層級為何,用戶端都能從網際網路上的任何位置連線至這些負載平衡器。負載平衡器也可以接收來自 Google Cloud 具有外部 IP 位址的 VM 的流量,或是來自 Google Cloud 可透過 Cloud NAT 或執行個體型網路位址轉譯 (NAT) 存取網際網路的 VM 的流量。

    您可以使用後端服務目標集區,部署外部直通式網路負載平衡器的後端。對於新的部署作業,我們建議使用後端服務。

  • 內部直通式網路負載平衡器是建構在 Andromeda 網路虛擬化堆疊上。內部轉送網路負載平衡器可讓您透過內部負載平衡 IP 位址負載平衡 TCP/UDP 流量,這類 IP 位址只能由同一個 VPC 網路中的系統或已連線至虛擬私有雲網路的系統存取。這個負載平衡器只能在進階級別中設定。

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

負載平衡器元件

負載平衡器是一種系統,由多個互動元件組成。沒有單一 API 資源可代表負載平衡器。而是由多個元件共同合作,將流量分散至多個後端。

下圖顯示應用程式負載平衡器、Proxy 網路負載平衡器和直通式網路負載平衡器的核心元件。

應用程式負載平衡器

應用程式負載平衡器的元件
應用程式負載平衡器的元件 (按一下可放大)。

Proxy 網路負載平衡器

Proxy 網路負載平衡器的元件
Proxy 網路負載平衡器的元件 (按一下可放大)。

直通式網路負載平衡器

直通式網路負載平衡器的元件
直通式網路負載平衡器的元件 (按一下可放大)。

以下資訊概略說明負載平衡器的關鍵元件,從流量抵達負載平衡器的時間點開始,一直到流量轉送至後端資源的階段。如要進一步瞭解各個負載平衡器元件,請參閱各個部分中提供的連結頁面。

轉送規則

轉送規則會指定 IP 位址、IP 通訊協定,以及負載平衡器接收流量的一或多個通訊埠。轉送規則及其附加的 IP 位址代表 Google Cloud 負載平衡器的前端。

詳情請參閱轉送規則總覽

目標 Proxy

目標 Proxy 會終止來自用戶端的連線,並建立從負載平衡器連至後端的新連線。

  • 第一個連線來自用戶端,並在負載平衡器的目標 Proxy 上終止。

  • 第二個連線會從目標 Proxy 開始,並在處理用戶端要求的後端執行個體結束。

第一個連線會在 Google Front End (GFE) 或專門指定的子網路 (稱為僅限 Proxy 子網路) 中終止,該子網路專供 Envoy Proxy 使用。如要瞭解負載平衡器是否以 GFE 或 Envoy 為基礎,請參閱本文「負載平衡器的基礎技術 Google Cloud 」一節中的表格。

目標 Proxy 僅供 Proxy 負載平衡器使用,例如應用程式負載平衡器和 Proxy 網路負載平衡器。對於這類負載平衡器,後端執行個體的回應會傳回至目標 Proxy,而非直接傳送至用戶端。

詳情請參閱「目標 Proxy」。

Proxy 專用子網路

僅限 Proxy 的子網路提供 IP 位址集區,專門用於 Google Cloud 負載平衡器使用的 Envoy Proxy。Proxy 會終止傳入的連線,然後建立連至後端的新連線。

詳情請參閱「以 Envoy 為基礎的負載平衡器適用的僅限 Proxy 子網路

SSL 憑證

SSL 憑證又稱為傳輸層安全標準 (TLS) 憑證,可協助用戶端與負載平衡器之間進行安全通訊。以 Proxy 為基礎的負載平衡器,其轉送規則參照目標 HTTPS Proxy 或目標 SSL Proxy,需要私密金鑰和 SSL 憑證,做為負載平衡器的目標 Proxy 設定的一部分。

詳情請參閱「SSL 憑證」。

網址對應

終止連線後,目標 HTTP(S) Proxy 會使用網址對應,決定將新要求轉送至何處 (即「目標 Proxy」一節所述的第二個連線)。要求會轉送至後端服務或後端值區。網址對應只供應用程式負載平衡器使用。由於應用程式負載平衡器會在 OSI 模型的第 7 層運作,因此可以根據 HTTP 屬性 (例如網域名稱、要求路徑和查詢參數) 做出轉送決策。

詳情請參閱「網址對應」。

後端服務

後端服務可定義負載平衡器分配流量的方式。後端服務設定包含一組值,例如用於連線至後端的通訊協定、各種發布和工作階段設定、健康狀態檢查和逾時。

這些設定可精細控管負載平衡器的運作方式,並將流量導向正確的後端,後端可以是 VM 執行個體群組或網路端點群組 (NEG)

詳情請參閱「後端服務總覽」。

後端值區

如果工作負載使用 HTTP(S) 通訊協定放送靜態內容,您可以使用 Cloud Storage 值區儲存靜態內容,然後使用後端值區將要求轉送至該值區。

健康狀態檢查

設定負載平衡器的後端服務時,您需要為後端指定一或多項健康狀態檢查。顧名思義,健康狀態檢查會判斷負載平衡器的後端執行個體是否健康。這項判斷是根據後端回應傳入流量的功能而定。後端需要回應的流量取決於負載平衡器的類型。您可以使用 第 7 層和第 4 層通訊協定建立健康狀態檢查,以監控負載平衡的執行個體。

防火牆規則

如要讓健康狀態檢查運作,您必須建立輸入 allow 防火牆規則,允許健康狀態檢查探測器連線至後端。

以 Google Front End 為基礎的負載平衡器需要輸入允許防火牆規則,允許來自 Google Front End CIDR 的流量連線至後端。以開放原始碼 Envoy Proxy 為基礎的負載平衡器需要一個允許輸入的 allow 防火牆規則,讓流量從僅限 Proxy 的子網路傳送至後端執行個體。

詳情請參閱「防火牆規則」。

後端

後端是負載平衡流量的最終目的地。

不同的負載平衡器支援不同類型的後端。將後端新增至後端服務時,您會指定平衡模式,以評估後端處理新要求的能力,並決定流量如何在後端之間分配。

詳情請參閱「後端」。

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
內部直通式網路負載平衡器 Andromeda

選取負載平衡器

如要決定要使用哪種 Cloud Load Balancing 產品,您必須先決定負載平衡器必須處理的流量類型。一般來說,如果您需要為含有 HTTP(S) 流量的應用程式設定較有彈性的功能,則應選擇應用程式負載平衡器。如要大規模執行 TLS 卸載作業、支援 UDP,或需要向應用程式公開用戶端 IP 位址,請選擇網路負載平衡器。

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

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

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

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

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

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

Google Cloud 負載平衡器類型摘要

下表提供詳細資訊,例如每個負載平衡器運作的網路服務層級,以及負載平衡架構。

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

全球性進階級

標準級地區性

EXTERNAL
區域內部 HTTP 或 HTTPS 進階級 INTERNAL_MANAGED
跨區域內部 HTTP 或 HTTPS 進階級 INTERNAL_MANAGED
Proxy 網路負載平衡器 全球外部 具備選用 SSL 卸載機制的 TCP 進階級 EXTERNAL_MANAGED
區域外部 TCP 進階或標準級 EXTERNAL_MANAGED
Classic 具備選用 SSL 卸載機制的 TCP

全球性進階級

標準級地區性

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

外部

一律區域性

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

內部

一律區域性

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

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

`EXTERNAL_MANAGED` 或 `INTERNAL_MANAGED` 中的「managed」一詞表示負載平衡器已在 Google Front End (GFE) 或開放原始碼 Envoy Proxy 中做為代管服務導入。在受管理的負載平衡架構中,系統會將要求轉送至 GFE 或 Envoy Proxy。

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

介面

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

  • Google Cloud CLIGoogle 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負載平衡基礎架構。

後續步驟

  • 如要瞭解如何判斷哪種 Google Cloud 負載平衡器最符合您的需求,請參閱「選擇負載平衡器」一文。
  • 如要比較 Cloud Load Balancing 提供的負載平衡功能,請參閱「負載平衡器功能比較」。