負載平衡器會在應用程式的多個執行個體之間分配使用者流量。以負載平衡機制分配流量,即可降低應用程式發生效能問題的風險。Google 的 Cloud Load Balancing 採用可靠的高效能技術,例如 Maglev、Andromeda、Google Front End 和 Envoy,這些技術也用於 Google 自家產品。
Cloud Load Balancing 提供完整的區域性應用程式和網路負載平衡器組合。使用我們的負載平衡器,在單一區域的後端之間,每秒分配數百萬個要求。您可以設定這些負載平衡器,透過單一任意傳播 IP 位址存取。使用區域性 Proxy 負載平衡器,實施嚴格的管轄權控制,將後端和 Proxy 保留在您的區域,不必擔心 TLS/SSL 卸載。使用區域性直通式負載平衡器,快速將多種通訊協定轉送至後端,並享有直接伺服器回傳 (DSR) 的高效能。
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內部,您可以使用「內部」負載平衡器。詳情請參閱「外部與內部負載平衡」。
Google Cloud 負載平衡器的類型
Cloud Load Balancing 提供兩種負載平衡器:應用程式負載平衡器和網路負載平衡器。如果應用程式有 HTTP(S) 流量,且需要第 7 層負載平衡器,請選擇應用程式負載平衡器。如果需要支援 TLS 卸載的第 4 層負載平衡器 (搭配 Proxy 負載平衡器),或需要支援 UDP、ESP 和 ICMP 等 IP 通訊協定 (搭配直通式負載平衡器),請選擇網路負載平衡器。
應用程式負載平衡器
應用程式負載平衡器是以 Proxy 為基礎的第 7 層負載平衡器,可讓您透過任意傳播 IP 位址執行服務及調度服務資源。應用程式負載平衡器會將 HTTP 和 HTTPS 流量分配給託管於各種 Google Cloud 平台 (例如 Compute Engine 和 Google Kubernetes Engine (GKE)) 的後端,以及Google Cloud以外的外部後端。
應用程式負載平衡器可部署於外部或內部,具體取決於應用程式是連結網際網路還是內部應用程式。無論是哪種情況,這些負載平衡器都僅支援單一區域中的後端。
- 區域性外部應用程式負載平衡器是以 Envoy Proxy 的代管服務形式實作。用戶端可以從網際網路上的任何位置連線至這些負載平衡器。應用程式負載平衡器使用開放原始碼 Envoy Proxy,提供進階流量管理功能。
- 區域性內部應用程式負載平衡器是以 Andromeda 網路虛擬化堆疊和開放原始碼 Envoy Proxy 建構而成。這個負載平衡器提供以 Proxy 為基礎的第 7 層應用程式資料內部負載平衡功能。負載平衡器使用的內部 IP 位址,只有相同虛擬私有雲網路中的用戶端,或連線至虛擬私有雲網路的用戶端可以存取。
下圖顯示應用程式負載平衡器架構範例。
網路負載平衡器
網路負載平衡器屬於第 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 網路負載平衡器是第 4 層負載平衡器,可將來自網際網路的流量分配至 Google Cloud 虛擬私有雲網路、地端部署或其他雲端環境中的後端。
- 區域性內部 Proxy 網路負載平衡器是以 Envoy Proxy 為基礎的區域性第 4 層負載平衡器,可讓您透過內部 IP 位址執行及調度 TCP 服務流量,且該 IP 位址只能由相同虛擬私有雲網路中的用戶端,或連線至虛擬私有雲網路的用戶端存取。
下圖顯示 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 |
| 區域性內部應用程式負載平衡器 | Envoy |
| 區域性外部 Proxy 網路負載平衡器 | Envoy |
| 區域性內部 Proxy 網路負載平衡器 | Envoy |
| 區域性外部直通式網路負載平衡器 | Maglev |
| 內部直通式網路負載平衡器 | Andromeda |
選取負載平衡器
選擇 Cloud Load Balancing 產品時,您需要先決定負載平衡器所須處理的流量類型。一般來說,如需較具彈性的功能,則應選擇應用程式負載平衡器,以便處理含有 HTTP(S) 流量的應用程式。如要大規模執行 TLS 卸載作業、支援 UDP,或需要向應用程式提供用戶端 IP 位址,則可選用網路負載平衡器。
您還可以根據應用程式是內部應用程式,還是連結網際網路的外部應用程式,進一步縮減選項。
下圖顯示 Cloud Load Balancing 所有可用的部署模式。詳情請參閱「選擇負載平衡器」指南。
Google 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 Front End (GFE) 或開放原始碼 Envoy Proxy 上實作。在代管負載平衡架構中,系統會將要求轉送至 GFE 或 Envoy Proxy。
介面
您可以使用下列介面設定及更新負載平衡器:
Google Cloud CLI:Google Cloud CLI 隨附的指令列工具。說明文件經常會提到這項工具,用於完成各項工作。如需這項工具的完整總覽,請參閱 gcloud CLI 指南。您可以在
gcloud compute指令群組中找到與負載平衡相關的指令。您也可以使用
--help旗標,取得任何gcloud指令的詳細說明。gcloud compute http-health-checks create --helpGoogle 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 存放區。