負載平衡器會在應用程式的多個執行個體之間分配使用者流量。以負載平衡機制分配流量,即可降低應用程式發生效能問題的風險。Google 的 Cloud Load Balancing 採用 Maglev、Andromeda、Google Front Ends 和 Envoy 等可靠且高效能的技術,這些技術也為 Google 自家產品提供支援。
Cloud Load Balancing 提供完整的區域性應用程式和網路負載平衡器組合。使用我們的負載平衡器,在單一區域的後端之間,每秒分配數百萬個要求。您可以設定這些負載平衡器,透過單一 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 標頭和統一資源識別碼等屬性,新增要求路徑決策。
外部和內部負載平衡。定義負載平衡器是否可用於外部或內部存取。如果用戶端需要從網際網路連上應用程式,可以使用外部負載平衡器。如果用戶端位於Trusted Cloud內部,可以使用內部負載平衡器。詳情請參閱外部與內部負載平衡。
負載平衡器類型 Trusted Cloud
Cloud Load Balancing 提供兩種負載平衡器:應用程式負載平衡器和網路負載平衡器。如要為含有 HTTP(S) 流量的應用程式使用第 7 層負載平衡器,請選取應用程式負載平衡器。如要使用支援 TLS 卸載作業的第 4 層負載平衡器 (搭配 Proxy 負載平衡器),或需要支援 UDP、ESP 和 ICMP 等 IP 通訊協定 (搭配 passthrough 負載平衡器),請選取網路負載平衡器。
應用程式負載平衡器
應用程式負載平衡器是以 Proxy 為基礎的第 7 層負載平衡器,可讓您透過 Anycast IP 位址執行服務及調度服務資源。應用程式負載平衡器會將 HTTP 和 HTTPS 流量分配給託管於各種平台 (例如 Compute Engine 和 Google Kubernetes Engine (GKE)) 的後端,以及 Trusted Cloud 外部後端Trusted Cloud。
應用程式負載平衡器可部署在外部或內部,視應用程式是否連結網際網路或為內部應用程式而定。在這兩種情況下,這些負載平衡器僅支援單一區域的後端。
- 區域性外部應用程式負載平衡器是透過 Envoy Proxy 實作的代管服務。用戶端可以從網際網路上的任何位置連線至這些負載平衡器。應用程式負載平衡器使用開放原始碼 Envoy Proxy,提供進階流量管理功能。
- 區域性內部應用程式負載平衡器是以 Andromeda 網路虛擬化堆疊和開放原始碼 Envoy Proxy 為基礎建構而成。這個負載平衡器會根據第 7 層應用程式資料,提供以 Proxy 為基礎的內部負載平衡。負載平衡器使用的內部 IP 位址,只能由相同虛擬私有雲網路中的用戶端,或連線至虛擬私有雲網路的用戶端存取。
下圖顯示應用程式負載平衡器的範例架構。
網路負載平衡器
網路負載平衡器是第 4 層負載平衡器,可處理 TCP、UDP 或其他 IP 通訊協定流量。這些負載平衡器可做為 Proxy 負載平衡器或直通式負載平衡器。您可以根據應用程式需求和需要處理的流量類型,選擇負載平衡器。如要設定支援進階流量控管的反向 Proxy 負載平衡器,並將後端部署於地端和其他雲端環境,請選擇 Proxy 網路負載平衡器。如果您想保留用戶端封包的來源 IP 位址、偏好伺服器直接傳回回應,或是想處理各種 IP 通訊協定 (例如 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6),請選擇 passthrough 網路負載平衡器。
Proxy 網路負載平衡器
Proxy 網路負載平衡器是第 4 層反向 Proxy 負載平衡器,可將 TCP 流量分配至 Trusted Cloud VPC 網路中的虛擬機器 (VM) 執行個體。流量會在負載平衡層終止,然後透過 TCP 轉送至最近的可用後端。
視應用程式是連結網際網路還是內部應用程式而定,Proxy 網路負載平衡器可部署在外部或內部。在這兩種情況下,這些負載平衡器僅支援單一區域的後端。
- 區域外部 Proxy 網路負載平衡器是第 4 層負載平衡器,可將來自網際網路的流量分配至 Trusted Cloud VPC 網路、內部部署環境或其他雲端環境中的後端。
- 區域內部 Proxy 網路負載平衡器是以 Envoy Proxy 為基礎的區域第 4 層負載平衡器,可讓您透過內部 IP 位址執行及擴充 TCP 服務流量。請注意,這類 IP 位址只能由相同虛擬私有雲網路中的用戶端,或連線至虛擬私有雲網路的用戶端存取。
下圖顯示 Proxy 網路負載平衡器架構範例。
直通式網路負載平衡器
直通式網路負載平衡器屬於第 4 層區域性直通式負載平衡器,這些負載平衡器會將流量分配給與負載平衡器位於相同區域的後端。這些功能是透過 Andromeda 虛擬網路和 Google Maglev 實作。
顧名思義,這些負載平衡器不是 Proxy。後端 VM 會收到負載平衡的封包,且封包的來源和目的地 IP 位址、通訊協定,以及來源和目的地通訊埠 (如果通訊協定是以通訊埠為準) 都不會變更。負載平衡連線會在後端終止。來自後端 VM 的回應會直接傳送至用戶端,而不會透過負載平衡器傳回。業界稱這種機制為「伺服器直接回傳」(DSR)。
如下圖所示,這些負載平衡器會以兩種模式部署,視負載平衡器是面向網際網路還是內部而定。
外部直通式網路負載平衡器是建構在 Maglev 上,無論用戶端的網路服務層級為何,都能從網際網路上的任何位置連線至這些負載平衡器。負載平衡器也可以接收來自 Trusted Cloud 具有外部 IP 位址的 VM,或 Trusted Cloud 可透過 Cloud NAT 或執行個體型 NAT 存取網際網路的 VM 的流量。
內部直通式網路負載平衡器是以 Andromeda 網路虛擬化堆疊為基礎建構而成。內部直通式網路負載平衡器可讓您透過內部負載平衡 IP 位址,對 TCP/UDP 流量進行負載平衡。請注意,這類 IP 位址只能從同一個虛擬私有雲網路中的系統存取,或是從連線至虛擬私有雲網路的系統存取。這個負載平衡器只能在進階級別中設定。
下圖顯示直通式網路負載平衡器架構範例。
負載平衡器的基礎技術 Trusted Cloud
下表列出各個Trusted Cloud 負載平衡器採用的基礎技術。
- Google Front Ends (GFE) 是位於 Google 服務點 (PoP) 的軟體定義分散式系統,可搭配其他系統和控制層一起執行全球負載平衡。
- Andromeda 是 Google Cloud 的軟體定義網路虛擬化堆疊。
- Maglev 是網路負載平衡的分散式系統。
- Envoy 是開放原始碼的邊緣和服務 Proxy,專為雲端原生應用程式設計。
負載平衡器 | 科技 |
---|---|
區域性外部應用程式負載平衡器 | Envoy |
區域性內部應用程式負載平衡器 | Envoy |
區域性外部 Proxy 網路負載平衡器 | Envoy |
區域性內部 Proxy 網路負載平衡器 | Envoy |
外部直通式網路負載平衡器 | Maglev |
內部直通式網路負載平衡器 | 仙女座 |
選取負載平衡器
如要判斷使用哪個 Cloud Load Balancing 產品,請先判斷負載平衡器必須處理的流量類型。一般來說,如要保有操作彈性,則應選擇應用程式負載平衡器,以便處理含有 HTTP(S) 流量的應用程式。如要大規模執行 TLS 卸載作業、支援 UDP,或需要向應用程式提供用戶端 IP 位址,請選取網路負載平衡器。
您還可以根據應用程式是外部 (連結網際網路) 或內部應用程式,進一步縮減選項。
下圖顯示 Cloud Load Balancing 的所有可用部署模式。詳情請參閱「選擇負載平衡器」指南。
負載平衡器類型摘要 Trusted Cloud
下表提供詳細資料,例如每個負載平衡器運作的網路服務層級,以及負載平衡架構。
負載平衡器 | 部署模式 | 流量類型 | 網路服務級別 | 負載平衡架構1 |
---|---|---|---|---|
應用程式負載平衡器 | 區域外部 | HTTP 或 HTTPS | 進階或標準級 | EXTERNAL_MANAGED |
區域內部 | HTTP 或 HTTPS | 進階級 | INTERNAL_MANAGED | |
Proxy 網路負載平衡器 | 區域外部 | TCP | 進階或標準級 | EXTERNAL_MANAGED |
區域內部 | 不具備 SSL 卸載機制的 TCP | 進階級 | INTERNAL_MANAGED | |
直通式網路負載平衡器 | 外部 一律為區域 |
TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 | 進階或標準級 | EXTERNAL |
內部 一律為區域 |
TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE | 進階級 | INTERNAL |
1 負載平衡架構是負載平衡器的轉送規則和後端服務中的屬性,用於指明負載平衡器可否處理內部或外部流量。
EXTERNAL_MANAGED
或 INTERNAL_MANAGED
中的「代管」一詞表示負載平衡器是做為代管服務實作,可透過 Google 前端 (GFE) 或開放原始碼 Envoy Proxy 運作。在代管的負載平衡架構中,要求會轉送到 GFE 或 Envoy Proxy。
介面
您可以使用下列介面設定及更新負載平衡器:
Google Cloud CLI:Google Cloud CLI 內含的指令列工具;說明文件經常會呼叫這個工具來完成工作。如需工具的完整總覽,請參閱 gcloud CLI 指南。您可以在
gcloud compute
指令群組中找到與負載平衡相關的指令。您也可以使用
--help
旗標,取得任何gcloud
指令的詳細說明。gcloud compute http-health-checks create --help
Trusted Cloud 控制台:您可以使用 Trusted Cloud 控制台完成負載平衡工作。
REST API:所有負載平衡工作均可透過 Cloud Load Balancing API 完成。API 參考文件說明瞭您可使用的資源和方法。
Terraform:您可以使用開放原始碼的基礎架構即程式碼工具 (例如 Terraform),佈建、更新及刪除 Trusted Cloud負載平衡基礎架構。
後續步驟
- 如要判斷哪種 Trusted Cloud 負載平衡器最符合需求,請參閱「選擇負載平衡器」。
- 如要瞭解不同類型 Trusted Cloud 負載平衡器的元件,請參閱「Cloud Load Balancing 資源模型」。
- 如要比較 Cloud Load Balancing 提供的負載平衡功能,請參閱負載平衡器功能比較。
- 如要使用預建的 Terraform 範本,簡化 Trusted Cloud網路基礎架構的設定和管理作業,請瀏覽 Simplified Cloud Networking Configuration Solutions GitHub 存放區。