負載平衡器會在應用程式的多個執行個體之間分配使用者流量。以負載平衡機制分配流量,即可降低應用程式發生效能問題的風險。Google 的 Cloud Load Balancing 採用 Maglev、Andromeda、Google Front Ends 和 Envoy 等可靠且高效能的技術,這些技術也為 Google 自家產品提供支援。
Cloud Load Balancing 提供完整的應用程式和網路負載平衡器組合。使用我們的全域 Proxy 負載平衡器,透過全球 80 多個不同位置的 Google Front End 叢集,在多個地區的後端之間分配每秒數百萬個要求,而且只需要單一 Anycast IP 位址。透過區域 Proxy 負載平衡器實作嚴格的管轄控制,將後端和 Proxy 保留在您選擇的區域,不必擔心 TLS/SSL 卸載。使用直通負載平衡器,以直接伺服器回傳 (DSR) 的高效能,快速將多種通訊協定路由至後端。
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 標頭和統一資源識別碼等屬性,新增要求路徑決策。
外部和內部負載平衡。定義負載平衡器是否可用於外部或內部存取。如果用戶端需要從網際網路連上應用程式,可以使用外部負載平衡器。如果用戶端位於Google Cloud內部,可以使用內部負載平衡器。詳情請參閱外部與內部負載平衡。
全域和區域性負載平衡。定義負載平衡器的範圍。全域負載平衡器支援多個區域的後端,而區域負載平衡器則支援單一區域的後端。即使區域負載平衡器的 IP 位址位於某個區域,區域負載平衡器仍可供全球存取。您可以將後端分配至單一或多個區域,在靠近使用者的位置終止連線,並滿足高可用性需求。詳情請參閱全球性與地區性負載平衡。
進階級和標準級的流量轉送。負載平衡服務 Google Cloud 會根據您選擇的網路層級 (進階級或標準級) 而有所不同,前者比後者貴。進階級採用 Google 的高品質全球骨幹網路,標準級則使用公開網際網路在網路中傳輸流量。您選擇的網路層級取決於企業工作負載的優先考量是成本還是效能。部分負載平衡服務僅適用於進階級,不適用於標準級。詳情請參閱「進階級與標準級網路服務級別」。
支援進階功能。Cloud Load Balancing 支援 IPv6 負載平衡、根據來源 IP 導向流量、加權負載平衡、WebSocket、使用者定義的要求標頭,以及私人虛擬 IP 位址 (VIP) 的通訊協定轉送等功能。
此外,還包括下列整合項目:
- 與 Cloud CDN 整合,可傳遞快取的內容。 Cloud CDN 支援全域外部應用程式負載平衡器和傳統版應用程式負載平衡器。
- 與 Google Cloud Armor 整合,保護基礎架構免受分散式阻斷服務 (DDoS) 攻擊和其他針對性應用程式攻擊。全時啟用的 DDoS 防護功能適用於全域外部應用程式負載平衡器、傳統版應用程式負載平衡器、外部 Proxy 網路負載平衡器和外部直通式網路負載平衡器。此外,Google Cloud Armor 僅支援外部直通式網路負載平衡器的進階網路 DDoS 防護功能。詳情請參閱「設定進階的網路分散式阻斷服務防護功能」。
負載平衡器類型 Google Cloud
Cloud Load Balancing 提供兩種負載平衡器:應用程式負載平衡器和網路負載平衡器。如要為含有 HTTP(S) 流量的應用程式使用第 7 層負載平衡器,請選取應用程式負載平衡器。如要使用支援 TLS 卸載作業的第 4 層負載平衡器 (搭配 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 流量分配給託管於各種平台 (例如 Compute Engine 和 Google Kubernetes Engine (GKE)) 的後端,以及 Google Cloud 外部後端Google Cloud。
下圖概略說明不同類型的應用程式負載平衡器,可視應用程式是否面向網際網路或內部網路,部署在外部或內部。
外部應用程式負載平衡器是透過代管服務實作,可使用 Google Front End (GFE) 或 Envoy Proxy。用戶端可以從網際網路上的任何位置連線至這些負載平衡器。請注意以下事項:
- 這些負載平衡器可透過下列模式部署:全域、區域或傳統版。
- 全域外部應用程式負載平衡器支援多個區域的後端。
- 區域性外部應用程式負載平衡器僅支援單一區域的後端。
- 傳統版應用程式負載平衡器在進階級中屬於全域資源。在標準級中,只能將流量分配到單一地區的後端。
- 應用程式負載平衡器使用開放原始碼 Envoy Proxy,提供進階流量管理功能。
內部應用程式負載平衡器是以 Andromeda 網路虛擬化堆疊和開放原始碼 Envoy Proxy 為基礎。這個負載平衡器會根據第 7 層應用程式資料,執行以 Proxy 為基礎的內部負載平衡。負載平衡器會使用內部 IP 位址,只有相同虛擬私有雲網路中的用戶端,或連線至虛擬私有雲網路的用戶端可以存取。注意事項:
- 這些負載平衡器可以區域或跨區域模式部署。
- 區域性內部應用程式負載平衡器僅支援單一區域的後端。
- 跨區域內部應用程式負載平衡器支援多個區域的後端,且一律可從全域存取。任何Google Cloud 區域的用戶端都可以將流量傳送至負載平衡器。
如要進一步瞭解應用程式負載平衡器,請參閱「應用程式負載平衡器總覽」。
網路負載平衡器
網路負載平衡器是第 4 層負載平衡器,可處理 TCP、UDP 或其他 IP 通訊協定流量。這些負載平衡器可做為 Proxy 負載平衡器或直通式負載平衡器。您可以根據應用程式需求和需要處理的流量類型,選擇負載平衡器。如要設定支援進階流量控管的反向 Proxy 負載平衡器,並將後端部署於地端和其他雲端環境,請選擇 Proxy 網路負載平衡器。如果您想保留用戶端封包的來源 IP 位址、偏好伺服器直接傳回回應,或是想處理各種 IP 通訊協定 (例如 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6),請選擇 passthrough 網路負載平衡器。
Proxy 網路負載平衡器
Proxy 網路負載平衡器是第 4 層反向 Proxy 負載平衡器,可將 TCP 流量分配至 Google Cloud VPC 網路中的虛擬機器 (VM) 執行個體。流量會在負載平衡層終止,然後透過 TCP 轉送至最近的可用後端。
下圖概略說明不同類型的 Proxy 網路負載平衡器,可視應用程式是否面向網際網路或內部網路,部署在外部或內部。
外部 Proxy 網路負載平衡器屬於第 4 層負載平衡器,可將來自網際網路的流量分配至 Google Cloud VPC 網路、內部部署環境或其他雲端環境中的後端。這類負載平衡器是建構在 Google Front Ends (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 上,無論用戶端的網路服務層級為何,都能從網際網路上的任何位置連線至這些負載平衡器。負載平衡器也可以接收來自 Google Cloud 具有外部 IP 位址的 VM,或 Google Cloud 可透過 Cloud NAT 或執行個體型 NAT 存取網際網路的 VM 的流量。
內部直通式網路負載平衡器是以 Andromeda 網路虛擬化堆疊為基礎建構而成。內部直通式網路負載平衡器可讓您透過內部負載平衡 IP 位址,對 TCP/UDP 流量進行負載平衡。請注意,這類 IP 位址只能從同一個虛擬私有雲網路中的系統存取,或是從連線至虛擬私有雲網路的系統存取。這個負載平衡器只能在進階級別中設定。
如要進一步瞭解直通式網路負載平衡器,請參閱直通式網路負載平衡器。
負載平衡器的基礎技術 Google Cloud
下表列出各個Google Cloud 負載平衡器採用的基礎技術。
- Google Front Ends (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 |
內部直通式網路負載平衡器 | 仙女座 |
選取負載平衡器
如要判斷使用哪個 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 |
內部3 一律為區域 |
TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE | 進階級 | INTERNAL |
1 負載平衡架構是負載平衡器的轉送規則和後端服務中的屬性,用於指明負載平衡器可否處理內部或外部流量。
EXTERNAL_MANAGED
或 INTERNAL_MANAGED
中的「代管」一詞表示負載平衡器是做為代管服務實作,可透過 Google 前端 (GFE) 或開放原始碼 Envoy Proxy 運作。在代管的負載平衡架構中,要求會轉送到 GFE 或 Envoy Proxy。
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負載平衡基礎架構。
後續步驟
- 如要判斷哪種 Google Cloud 負載平衡器最符合需求,請參閱「選擇負載平衡器」。
- 如要瞭解不同類型 Google Cloud 負載平衡器的元件,請參閱「Cloud Load Balancing 資源模型」。
- 如要比較 Cloud Load Balancing 提供的負載平衡功能,請參閱負載平衡器功能比較。
- 如要使用預建的 Terraform 範本,簡化 Google Cloud網路基礎架構的設定和管理作業,請瀏覽 Simplified Cloud Networking Configuration Solutions GitHub 存放區。