Cloud Load Balancing 支援將流量負載平衡至 Google Cloud以外的端點,例如地端部署資料中心和其他公有雲,您可以使用混合式連線連至這些端點。
混合策略是務實的解決方案,可協助您因應不斷變化的市場需求,並逐步將應用程式現代化。這可能是暫時的混合式部署,方便您遷移至現代化雲端解決方案,也可能是貴機構 IT 基礎架構的永久配置。
設定混合式負載平衡後,您還能將 Cloud Load Balancing 的網路功能優勢,帶給在 Google Cloud外部現有基礎架構上執行的服務。
下列 Google Cloud 負載平衡器支援混合型負載平衡:
- 外部應用程式負載平衡器:全域外部應用程式負載平衡器、傳統版應用程式負載平衡器和區域性外部應用程式負載平衡器
- 內部應用程式負載平衡器: 跨區域內部應用程式負載平衡器和區域內部應用程式負載平衡器
- 外部 Proxy 網路負載平衡器:全域外部 Proxy 網路負載平衡器、傳統版 Proxy 網路負載平衡器和區域外部 Proxy 網路負載平衡器
- 內部 Proxy 網路負載平衡器: 區域性內部 Proxy 網路負載平衡器和跨區域內部 Proxy 網路負載平衡器
地端和其他雲端服務會視為其他 Cloud Load Balancing 後端。主要差異在於您使用混合式連線 NEG 設定這些後端的端點。端點必須是有效的 IP:port
組合,負載平衡器可使用混合式連線產品 (例如 Cloud VPN、Cloud Interconnect 或 Router 設備 VM) 存取這些端點。
用途:將流量路由至地端位置或其他雲端
使用混合式 NEG 最簡單的用途,是將流量從Google Cloud 負載平衡器轉送至內部部署位置或其他雲端環境。用戶端可以從公用網際網路、 Google Cloud或地端用戶端發起流量。
公開用戶端
您可以搭配使用外部應用程式負載平衡器和混合式 NEG 後端,將外部用戶端的流量轉送至內部部署或另一個雲端網路的後端。您也可以為地端或其他雲端網路中的服務啟用下列加值網路功能:
全域外部應用程式負載平衡器和傳統版應用程式負載平衡器可讓您:
- 使用 Google 的全球邊緣基礎架構,在更靠近使用者的位置終止使用者連線,進而縮短延遲時間。
- 使用 Google Cloud Armor 保護服務,這是邊緣分散式阻斷服務防禦/WAF 安全性產品,適用於透過外部應用程式負載平衡器存取的所有服務。
- 啟用服務,使用 Cloud CDN 最佳化傳送作業。使用 Cloud CDN,您可以在靠近使用者的位置快取內容。Cloud CDN 提供快取撤銷和 Cloud CDN 已簽署網址等功能。
- 使用 Google 代管的 SSL 憑證。您可以重複使用已用於其他 Google Cloud 產品的憑證和私密金鑰。這樣就不必管理個別憑證。
下圖顯示使用外部應用程式負載平衡器的混合部署。
混合式連線,搭配全域外部應用程式負載平衡器 (按一下可放大)。 在這張圖表中,來自公用網際網路上用戶端的流量會透過 Google Cloud 負載平衡器 (例如外部應用程式負載平衡器),進入您的私有內部部署或雲端網路。流量抵達負載平衡器時,您可以套用網路邊緣服務,例如 Cloud Armor DDoS 防護或 Identity-Aware Proxy (IAP) 使用者驗證。
- 使用區域性外部應用程式負載平衡器,您可以將外部流量轉送至與負載平衡器資源位於相同 Google Cloud 區域的端點。如果內容供應來源僅限於一個地理位置 (例如必須遵守法規時),或是需要使用標準網路服務級別時,建議您選用這個負載平衡器。
要求的轉送方式 (轉送至 Google Cloud 後端或內部部署/雲端端點) 取決於網址對應的設定方式。負載平衡器會根據網址對應,為要求選取後端服務。如果所選後端服務已設定混合式連線 NEG (僅適用於非Google Cloud 端點),負載平衡器會透過 Cloud VPN、Cloud Interconnect 或路由器設備 VM,將流量轉送至預期的外部目的地。
內部用戶端 (位於 Google Cloud 或內部部署)
您也可以為內部用戶端設定混合式部署。Google Cloud在這種情況下,用戶端流量來自Google Cloud VPC 網路、地端部署網路或其他雲端,並會路由至地端部署或其他雲端網路中的端點。
區域性內部應用程式負載平衡器是區域性負載平衡器,因此只能將流量轉送至與負載平衡器資源位於相同 Google Cloud 區域的端點。 跨區域內部應用程式負載平衡器是多區域負載平衡器,可將流量平均分配給全球各地的後端服務。
下圖顯示使用區域內部應用程式負載平衡器的混合部署。
應用情境:遷移至雲端
將現有服務遷移至雲端,可釋放地端容量,並降低維護地端基礎架構的成本和負擔。您可以暫時設定混合式部署,將流量同時導向目前的內部部署服務和對應的Google Cloud 服務端點。
下圖顯示使用內部應用程式負載平衡器的設定。如果您使用內部應用程式負載平衡器處理內部用戶端,可以設定 Google Cloud 負載平衡器,使用以權重為準的流量分配方式,將流量分配到這兩項服務。流量分割功能可讓您先將 0% 的流量傳送至 Google Cloud 服務,並將 100% 的流量傳送至地端服務。然後逐步增加傳送至 Google Cloud 服務的流量比例。最終,您會將 100% 的流量傳送至 Google Cloud 服務,並淘汰地端服務。
混合式架構
本節說明負載平衡架構,以及設定混合式負載平衡部署作業所需的資源。
內部部署和其他雲端服務與其他 Cloud Load Balancing 後端類似。主要差異在於您使用混合式連線 NEG 設定這些後端的端點。端點必須是有效的 IP:port
組合,用戶端可透過混合式連線 (例如 Cloud VPN、Cloud Interconnect 或路由器設備 VM) 連線。
區域型外部 HTTP(S)
區域內部 HTTP(S)
區域性內部 Proxy
區域與全域
Cloud Load Balancing 路由取決於所設定負載平衡器的範圍:
外部應用程式負載平衡器和外部 Proxy 網路負載平衡器。視使用的網路層級而定,您可以設定這些負載平衡器,以進行全域或區域路由。您在設定混合式連線的相同網路和區域中,建立負載平衡器的混合式 NEG 後端。非Google Cloud 端點也必須相應設定,才能充分運用以鄰近性為準的負載平衡。
跨區域內部應用程式負載平衡器和跨區域內部 Proxy 網路負載平衡器。這是多區域負載平衡器,可將流量平均分配到遍布全球的後端服務。您會在已設定混合式連線的相同網路和區域中,建立負載平衡器的混合式 NEG 後端。非Google Cloud 端點也必須相應設定,才能充分運用以鄰近性為準的負載平衡。
區域性內部應用程式負載平衡器和區域性內部 Proxy 網路負載平衡器。這些是區域性負載平衡器。也就是說,只能將流量轉送至與負載平衡器位於相同地區的端點。負載平衡器元件必須在已設定混合式連線的相同區域中設定。根據預設,存取負載平衡器的用戶端也必須位於相同地區。不過,如果啟用全域存取權,任何區域的用戶端都能存取負載平衡器。
舉例來說,如果 Cloud VPN 閘道或 Cloud Interconnect VLAN 連結是在 REGION_A 中設定,則負載平衡器所需的資源 (例如後端服務、混合式 NEG 或轉送規則) 必須在 REGION_A 區域中建立。根據預設,存取負載平衡器的用戶端也必須位於 REGION_A 區域。 不過,如果啟用全域存取權,任何區域的用戶端都能存取負載平衡器。
網路連線需求
設定混合式負載平衡部署作業前,您必須先設定下列資源:
Google Cloud 虛擬私有雲網路。在 Google Cloud內設定的虛擬私有雲網路。這是用於設定 Cloud Interconnect/Cloud VPN 和 Cloud Router 的 VPC 網路。您也會在這個網路中建立負載平衡資源 (轉送規則、目標 Proxy、後端服務等)。內部部署、其他雲端和 Google Cloud 子網路 IP 位址和 IP 位址範圍不得重疊。如果 IP 位址重疊,系統會優先處理子網路路徑,而非遠端連線。
混合式連線。您的 Google Cloud 和地端或其他雲端環境必須透過混合式連線連線,使用 Cloud Interconnect VLAN 連結、Cloud Router 的 Cloud VPN 通道,或 Router 設備 VM。建議您使用高可用性連線。啟用全域動態轉送的 Cloud Router 會使用 BGP 瞭解特定端點,並將其程式化到您的Google Cloud VPC 網路。系統不支援區域動態轉送。也不支援靜態路徑。
您必須在相同的虛擬私有雲網路中設定 Cloud Interconnect/Cloud VPN/路由器設備,才能用於混合式負載平衡部署作業。Cloud Router 也必須向地端環境通告下列路徑:
Google 健康狀態檢查探針使用的範圍:
35.191.0.0/16
和130.211.0.0/22
。 全域外部應用程式負載平衡器、傳統版應用程式負載平衡器、全域外部 Proxy 網路負載平衡器和傳統版 Proxy 網路負載平衡器都必須使用這些範圍。區域的僅限 Proxy 子網路範圍:適用於以 Envoy 為基礎的負載平衡器,包括區域外部應用程式負載平衡器、區域內部應用程式負載平衡器、 跨區域內部應用程式負載平衡器、區域外部 Proxy 網路負載平衡器、 跨區域內部 Proxy 網路負載平衡器 ,以及區域內部 Proxy 網路負載平衡器。
如要執行分散式 Envoy 健康狀態檢查,也必須提供廣告區域的 Proxy 專用子網路。分散式 Envoy 健康狀態檢查是 Envoy 負載平衡器後方區域混合式連線 NEG (即
NON_GCP_PRIVATE_IP_PORT
端點) 的預設健康狀態檢查機制。
您可以在同一個專案中使用相同或不同的虛擬私有雲網路,設定混合式網路 (Cloud Interconnect 或 Cloud VPN) 和負載平衡器。注意事項:
如果您使用不同的虛擬私有雲網路,這兩個網路必須透過虛擬私有雲網路對等互連連線,或是必須是相同 Network Connectivity Center 中樞上的 虛擬私有雲網路節點。
如果使用相同的 VPC 網路,請確保 VPC 網路的子網路 CIDR 範圍與遠端 CIDR 範圍沒有衝突。如果 IP 位址重疊,系統會優先使用子網路路徑,而非遠端連線。
地端或在其他雲端服務中的網路端點 (
IP:Port
)。在內部部署或其他雲端環境中設定一或多個IP:Port
網路端點,可使用 Cloud Interconnect、Cloud VPN 或 Router 設備 VM 轉送。如果 IP 端點有多個路徑,轉送會遵循「虛擬私有雲路徑總覽」和「Cloud Router 總覽」中說明的行為。內部部署環境或其他雲端的防火牆規則。您必須在地端部署或其他雲端環境中建立下列防火牆規則:
- 建立 ingress 允許防火牆規則,允許來自 Google 健康狀態檢查探測器的流量傳送至端點。允許的範圍為:
35.191.0.0/16
和130.211.0.0/22
。請注意,Cloud Router 也必須向您的地端部署網路通告這些範圍。詳情請參閱「探測 IP 範圍和防火牆規則」。 - 允許輸入的防火牆規則,允許負載平衡流量到達端點。
- 如果是以 Envoy 為基礎的負載平衡器,包括區域性外部應用程式負載平衡器、區域性內部應用程式負載平衡器 、跨區域內部應用程式負載平衡器、區域性外部 Proxy 網路負載平衡器 、跨區域內部 Proxy 網路負載平衡器 ,以及區域性內部 Proxy 網路負載平衡器,您也需要建立防火牆規則,允許來自區域僅限 Proxy 子網路的流量,連線至位於內部部署環境或其他雲端環境的端點。
- 建立 ingress 允許防火牆規則,允許來自 Google 健康狀態檢查探測器的流量傳送至端點。允許的範圍為:
負載平衡器元件
視負載平衡器類型而定,您可以使用標準或進階網路服務層級,設定混合式負載平衡部署作業。混合負載平衡器只需要為後端服務進行特別設定。前端設定與其他負載平衡器相同。以 Envoy 為基礎的負載平衡器 (區域外部應用程式負載平衡器、區域內部應用程式負載平衡器 、跨區域內部應用程式負載平衡器、區域外部 Proxy 網路負載平衡器 、跨區域內部 Proxy 網路負載平衡器 和區域內部 Proxy 網路負載平衡器) 必須有額外的僅限 Proxy 的子網路,才能代表您執行 Envoy Proxy。
前端設定
混合型負載平衡不需要特殊前端設定。 轉送規則會依據 IP 位址、通訊埠和通訊協定,將流量轉送至目標 Proxy。目標 Proxy 接著會終止來自用戶端的連線。
HTTP(S) 負載平衡器會使用網址對應,根據網址將要求轉送至合適的後端服務。
如要進一步瞭解各個元件,請參閱特定負載平衡器總覽的架構章節:
後端服務
後端服務會將設定資訊提供給負載平衡器,負載平衡器會使用後端服務中的資訊,將傳入流量導向至一或多個連接的後端。
如要設定混合型負載平衡部署作業,請設定負載平衡器,後端同時位於 Google Cloud和 Google Cloud。
非Google Cloud 後端 (地端或其他雲端)
只要目的地可透過 Google 的混合式連線產品 (Cloud VPN、Cloud Interconnect 或 Router Appliance VM) 存取,且可透過有效的
IP:Port
組合存取,即可設定為負載平衡器的端點。請按照下列步驟設定非Google Cloud 後端:
- 將每個非Google Cloud 網路端點的
IP:Port
組合新增至混合式連線網路端點群組 (NEG)。請確認可從 Google Cloud 使用混合式連線 (透過 Cloud VPN、Cloud Interconnect 或路由器設備 VM) 存取這個 IP 位址和連接埠。如果是混合式連線 NEG,請將網路端點類型設為NON_GCP_PRIVATE_IP_PORT
。 - 建立 NEG 時,請指定區域,盡量縮短與地端部署系統或其他雲端環境之間的地理距離。 Google CloudGoogle Cloud 舉例來說,如果您在德國法蘭克福的內部部署環境中代管服務,則建立 NEG 時可以指定
europe-west3-a
Google Cloud 可用區。 將這個混合式連線 NEG 新增為後端服務的後端。
混合式連線 NEG 只能包含非Google Cloud端點。如果混合式 NEG 包含 Google Cloud 虛擬私有雲網路內資源的端點,例如內部直通式網路負載平衡器的轉送規則 IP 位址,流量可能會遭到捨棄。按照下一節的指示設定 Google Cloud 端點。
- 將每個非Google Cloud 網路端點的
Google Cloud backends
請按下列方式設定 Google Cloud 端點:
- 為 Google Cloud 後端建立個別後端服務。
- 在設定混合式連線的同一區域中,設定多個後端 (區域 NEG 或執行個體群組)。
GCE_VM_IP_PORT
其他注意事項:
每個混合式連線 NEG 只能包含相同類型的網路端點 (
NON_GCP_PRIVATE_IP_PORT
)。您可以透過單一後端服務,同時參照Google Cloud型後端 (使用具有
GCE_VM_IP_PORT
端點的區域 NEG),以及地端或其他雲端後端 (使用具有NON_GCP_PRIVATE_IP_PORT
端點的混合式連線 NEG)。不允許其他混合後端類型組合。 Cloud Service Mesh 不支援單一後端服務中的混合後端類型。
後端服務的負載平衡架構必須是下列其中一項:
EXTERNAL_MANAGED
:適用於全域外部應用程式負載平衡器、區域外部應用程式負載平衡器、全域外部 Proxy 網路負載平衡器和區域外部 Proxy 網路負載平衡器EXTERNAL
適用於傳統版應用程式負載平衡器和傳統版 Proxy 網路負載平衡器INTERNAL_MANAGED
適用於內部應用程式負載平衡器和內部 Proxy 網路負載平衡器
INTERNAL_SELF_MANAGED
支援混合式連線 NEGs 的 Cloud Service Mesh 多環境部署作業。
應用程式負載平衡器的後端服務通訊協定必須是
HTTP
、HTTPS
或HTTP2
,Proxy 網路負載平衡器則必須是TCP
或SSL
。如需各負載平衡器支援的後端服務通訊協定清單,請參閱「負載平衡器到後端的通訊協定」。混合式 NEG 後端的平衡模式必須是應用程式負載平衡器的
RATE
,以及 Proxy 網路負載平衡器的CONNECTION
。如要瞭解負載平衡模式的詳細資訊,請參閱後端服務總覽。如要新增更多網路端點,請更新附加至後端服務的後端。
如果您使用分散式 Envoy 健康狀態檢查,並搭配混合式連線 NEG 後端 (僅適用於以 Envoy 為基礎的負載平衡器),請務必為附加至相同後端服務的所有 NEG 設定專屬網路端點。如果將同一個網路端點新增至多個 NEG,會導致未定義的行為。
集中式健康狀態檢查
使用混合式 NEG 時,全域外部應用程式負載平衡器、傳統版應用程式負載平衡器、全域外部 Proxy 網路負載平衡器和傳統版 Proxy 網路負載平衡器都必須進行集中式健康狀態檢查。其他以 Envoy 為基礎的負載平衡器會使用分散式 Envoy 健康狀態檢查,如下一節所述。
如為NON_GCP_PRIVATE_IP_PORT
外部端點 Google Cloud,請在內部部署和其他雲端網路中建立防火牆規則。請洽詢網路管理員。用於混合式連線的 Cloud Router 也必須通告 Google 健康檢查探測器使用的範圍。要通告的範圍為 35.191.0.0/16
和 130.211.0.0/22
。
如要使用 Google Cloud內的其他類型後端,請在Google Cloud 上建立防火牆規則,如本範例所示。
相關說明文件:
分散式 Envoy 健康狀態檢查
健康狀態檢查設定會因負載平衡器類型而異:
- 全域外部應用程式負載平衡器、傳統版應用程式負載平衡器、全域外部 Proxy 網路負載平衡器和傳統版 Proxy 網路負載平衡器。這類負載平衡器不支援分散式 Envoy 健康狀態檢查。如「集中式健康狀態檢查」一節所述,這些檢查會使用 Google 的集中式健康狀態檢查機制。
區域性外部應用程式負載平衡器、區域性內部應用程式負載平衡器、 區域性外部 Proxy 網路負載平衡器、區域性內部 Proxy 網路負載平衡器 、 跨區域內部 Proxy 網路負載平衡器和跨區域內部應用程式負載平衡器。 這類負載平衡器會使用分散式 Envoy 健康狀態檢查,檢查混合式 NEG 的健康狀態。健康狀態檢查探測來自 Envoy 代理程式軟體本身。每個後端服務都必須與健康狀態檢查建立關聯,以檢查後端的健康狀態。健康狀態檢查探測器來自該地區僅限 Proxy 的子網路中的 Envoy Proxy。如要讓健康狀態檢查探測正常運作,您必須在外部環境中建立防火牆規則,允許來自僅限 Proxy 子網路的流量傳送至外部後端。
如為
NON_GCP_PRIVATE_IP_PORT
外部端點 Google Cloud,您必須在內部部署和其他雲端網路中建立這些防火牆規則。請洽詢網路管理員。用於混合式連線的 Cloud Router 也必須通告該區域的僅限 Proxy 子網路範圍。
建立分散式 Envoy 健康狀態檢查時,請使用與集中式健康狀態檢查相同Google Cloud 的控制台、gcloud CLI 和 API 程序。無需其他設定。
注意事項:
- 不支援 gRPC 健康狀態檢查。
- 不支援啟用 Proxy 通訊協定第 1 版的健康狀態檢查。
- 如果您使用混合式 NEG,也就是單一後端服務同時有可用區 NEG (
GCE_VM_IP_PORT
端點位於Google Cloud) 和混合式 NEG (NON_GCP_PRIVATE_IP_PORT
端點位於 Google Cloud),則必須設定防火牆規則,允許來自 Google 健康狀態檢查探測 IP 範圍 (130.211.0.0/22
和35.191.0.0/16
) 的流量前往Google Cloud上的可用區 NEG 端點。這是因為區域 NEG 使用 Google 的集中式健康狀態檢查系統。 由於 Envoy 資料平面會處理健康狀態檢查,因此您無法使用Google Cloud 主控台、API 或 gcloud CLI 檢查這些外部端點的健康狀態。如果是使用 Envoy 型負載平衡器的混合式 NEG,控制台會將健康狀態檢查狀態顯示為 Google Cloud
N/A
。這是可預期的情況。指派給虛擬私有雲網路中該地區僅限 Proxy 子網路的每個 Envoy Proxy,都會獨立啟動健康狀態檢查。因此,健康狀態檢查可能會導致網路流量增加。增加的費用取決於指派給區域中虛擬私有雲網路的 Envoy Proxy 數量、這些 Proxy 收到的流量,以及每個 Envoy Proxy 需要進行健康檢查的端點數量。在最糟的情況下,健康狀態檢查造成的網路流量會以二次方
(O(n^2))
的速率增加。分散式 Envoy 健康狀態檢查的記錄不會包含詳細的健康狀態。如要瞭解記錄內容,請參閱「健康狀態檢查記錄」。如要進一步排解從 Envoy Proxy 到 NEG 端點的連線問題,也請檢查相關的負載平衡器記錄。
相關說明文件:
限制
- 用於混合式連線的 Cloud Router 必須啟用全域動態轉送。不支援區域動態轉送和靜態路徑。
- 對於以 Envoy 為基礎的區域負載平衡器 (區域外部應用程式負載平衡器、區域外部 Proxy 網路負載平衡器、區域內部 Proxy 網路負載平衡器和區域內部應用程式負載平衡器),混合式連線必須在與負載平衡器相同的區域中設定。如果設定在不同區域,您可能會看到後端狀態良好,但用戶端要求不會轉送至後端。
負載平衡器與後端之間的加密連線注意事項請參閱這篇文章,這些注意事項也適用於混合式連線 NEG 中設定的非Google Cloud 後端端點。
請務必一併檢查混合式連線設定的安全性設定。高可用性 VPN 連線預設會加密 (IPsec)。根據預設,Cloud Interconnect 連線不會加密。詳情請參閱傳輸加密白皮書。
記錄
系統會將轉送至混合型 NEG 端點的要求記錄到 Cloud Logging,記錄方式與其他後端的要求相同。如果為全域外部應用程式負載平衡器啟用 Cloud CDN,系統也會記錄快取命中次數。
如需詳細資訊,請參閱:
配額
您可以設定的混合式 NEG 數量,取決於現有網路端點群組配額。詳情請參閱「NEG 後端」和「每個 NEG 的端點」。
後續步驟
- 設定具備混合式連線的傳統版應用程式負載平衡器
- 設定具有混合式連線的區域外部應用程式負載平衡器
- 設定具有混合式連線的區域內部應用程式負載平衡器
- 設定具有混合式連線的區域性內部 Proxy 網路負載平衡器
- 設定具有混合式連線的跨區域內部 Proxy 網路負載平衡器
- 設定具有混合式連線的區域性外部 Proxy 網路負載平衡器
- 如要進一步瞭解 Cloud Service Mesh 的混合式連線,請參閱 Cloud Service Mesh 混合式連線總覽。
- 如要為混合部署項目設定 Cloud Service Mesh,請參閱「適用於多環境部署項目的網路邊緣服務」。