本文將介紹設定 Google Cloud 外部 Proxy 網路負載平衡器時需瞭解的概念。
外部 Proxy 網路負載平衡器是反向 Proxy 負載平衡器,可將來自網際網路的 TCP 流量分配至Google Cloud 虛擬私有雲 (VPC) 網路中的虛擬機器 (VM) 執行個體。使用外部 Proxy 網路負載平衡器時,傳入的 TCP 或 SSL流量會在負載平衡器終止。然後,新連線會使用 TCP 或 SSL (建議) 將流量轉送至最近的可用後端 。如需更多使用案例,請參閱 Proxy 網路負載平衡器總覽。
全域外部 Proxy 網路負載平衡器可讓您使用單一 IP 位址,為世界各地的使用者提供服務。負載平衡器會自動將流量轉送至最接近使用者的後端。
在此範例中,來自 A 市和 B 市使用者的 SSL 流量會在負載平衡層終止,並與所選後端建立單獨的連線。
運作模式
您可以透過下列模式設定外部 Proxy 網路負載平衡器:
- 傳統版 Proxy 網路負載平衡器是在全球分散式 Google Front End (GFE) 上實作。您可以分別使用目標 TCP Proxy 或目標 SSL Proxy,將這個負載平衡器設定為處理 TCP 或 SSL 流量。在進階層級中,這個負載平衡器可設為全域負載平衡服務。使用標準級時,這個負載平衡器會設定為區域性負載平衡服務。傳統 Proxy 網路負載平衡器也可用於其他使用 SSL 的通訊協定,例如 WebSockets 和透過 SSL 的 IMAP 存取。
- 全域外部 Proxy 網路負載平衡器是在全球分散式 GFE 上實作,並支援進階流量管理功能。您可以設定這個負載平衡器,分別使用目標 TCP Proxy 或目標 SSL Proxy,處理 TCP 或 SSL 流量。這個負載平衡器會設為進階級的全球化負載平衡服務。全域外部 Proxy 網路負載平衡器也可用於其他使用 SSL 的通訊協定,例如 WebSockets 和透過 SSL 的 IMAP 存取。
- 區域性外部 Proxy 網路負載平衡器是在開放原始碼 Envoy Proxy 軟體堆疊上實作。只能處理 TCP 流量。這個負載平衡器設定為區域性負載平衡服務,可使用進階或標準級。
找出模式
如要判斷負載平衡器的模式,請完成下列步驟。
主控台
前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。
「Load Balancers」(負載平衡器) 分頁會顯示負載平衡器類型、通訊協定和區域。如果區域留白,則負載平衡器為全域。
下表摘要說明如何判斷負載平衡器的模式。
負載平衡器模式 負載平衡器類型 存取權類型 區域 傳統版 Proxy 網路負載平衡器 網路 (Proxy 傳統版) 外部 全域外部 Proxy 網路負載平衡器 網路 (Proxy) 外部 區域性外部 Proxy 網路負載平衡器 網路 (Proxy) 外部 指定區域
gcloud
使用
gcloud compute forwarding-rules describe
指令:gcloud compute forwarding-rules describe FORWARDING_RULE_NAME
在指令輸出中,檢查負載平衡配置、區域和網路層級。下表摘要說明如何識別負載平衡器的模式。
負載平衡器模式 負載平衡架構 轉送規則 網路級別 傳統版 Proxy 網路負載平衡器 EXTERNAL 全球 標準或進階 全域外部 Proxy 網路負載平衡器 EXTERNAL_MANAGED 全球 進階 區域性外部 Proxy 網路負載平衡器 EXTERNAL_MANAGED 區域 標準或進階
架構
下圖顯示外部 Proxy 網路負載平衡器的元件。
全球
這張圖表顯示全域外部 Proxy 網路負載平衡器部署作業的元件。這項架構適用於進階級別的全域外部 Proxy 網路負載平衡器和傳統 Proxy 網路負載平衡器。
以下是外部 Proxy 網路負載平衡器的元件。
Proxy 專用子網路
注意:只有區域性外部 Proxy 網路負載平衡器才需要 Proxy 專用子網路。僅限 Proxy 的子網路會提供一組 IP 位址,供 Google 代表您執行 Envoy Proxy。您必須在使用負載平衡器的虛擬私有雲網路的每個區域,建立一個僅限 Proxy 的子網路。這個僅限 Proxy 子網路的 --purpose
旗標已設為 REGIONAL_MANAGED_PROXY
。位於相同區域和 VPC 網路的所有區域 Envoy 型負載平衡器,都會共用來自相同 Proxy 專用子網路的 Envoy Proxy 集區。
地區和虛擬私有雲網路中所有負載平衡器的後端 VM 或端點,都會接收來自僅限 Proxy 子網路的連線。
注意事項:
- 僅限 Proxy 的子網路只會用於 Envoy Proxy,不會用於後端。
- 負載平衡器的 IP 位址並非位於僅限 Proxy 的子網路。負載平衡器的 IP 位址是由外部代管轉送規則定義。
轉送規則和 IP 位址
轉送規則會依 IP 位址、通訊埠和通訊協定,將流量轉送至由目標 Proxy 和後端服務所組成的負載平衡設定。
IP 位址規格。每個轉送規則都會參照單一 IP 位址,供您用於應用程式的 DNS 記錄。您可以保留要使用的靜態 IP 位址,或由 Cloud Load Balancing 為您指派靜態 IP 位址。建議您保留靜態 IP 位址。 否則,每當您刪除轉送規則並建立新規則時,均必須使用新指派的臨時 IP 位址更新 DNS 記錄。
通訊埠規格。用於定義這個負載平衡器的外部轉送規則,只能參照 1 到 65535 之間的「一個」通訊埠。如要支援多個連續連接埠,必須設定多個轉送規則。您可以設定多個轉送規則,使用相同的虛擬 IP 位址和不同的通訊埠,因此可以將多個應用程式連至相同的 TCP Proxy 虛擬 IP 位址,並使用不同的自訂通訊埠。詳情請參閱「轉送規則的通訊埠規格」。
如要支援多個連續通訊埠,必須設定多個轉送規則。您可以設定多個轉送規則,使用相同的虛擬 IP 位址和不同的通訊埠。因此,您可以透過不同的自訂通訊埠,將多個應用程式 Proxy 至同一個 TCP Proxy 虛擬 IP 位址。
下表列出外部 Proxy 網路負載平衡器的轉送規則需求。
負載平衡器模式 | 網路服務級別 | 轉送規則、IP 位址和負載平衡架構 | 從網際網路到負載平衡器前端的路由 |
---|---|---|---|
傳統版 Proxy 網路負載平衡器 | 進階級 |
負載平衡架構: |
要求會轉送至網際網路上距離用戶端最近的 GFE。 |
標準級 |
負載平衡架構: |
要求會轉送至負載平衡器所在區域的 GFE。 | |
全域外部 Proxy 網路負載平衡器 | 進階級 |
負載平衡架構: |
要求會轉送至網際網路上距離用戶端最近的 GFE。 |
區域性外部 Proxy 網路負載平衡器 | 進階和標準 級 |
負載平衡架構: |
要求會轉送至與負載平衡器位於相同地區的 Envoy 代理伺服器。 |
轉送規則和虛擬私有雲網路
本節說明外部應用程式負載平衡器使用的轉送規則如何與虛擬私有雲網路建立關聯。
負載平衡器模式 | 虛擬私有雲網路關聯 |
---|---|
全域外部 Proxy 網路負載平衡器 傳統版 Proxy 網路負載平衡器 |
沒有相關聯的虛擬私有雲網路。 轉送規則一律使用虛擬私有雲網路外部的 IP 位址。因此,轉送規則沒有相關聯的 VPC 網路。 |
區域性外部 Proxy 網路負載平衡器 | 轉送規則的虛擬私有雲網路是建立僅限 Proxy 子網路的網路。建立轉送規則時,請指定網路。 |
目標 Proxy
外部 Proxy 網路負載平衡器會終止來自用戶端的連線,並建立與後端的新連線。目標 Proxy 會將這些新連線轉送至後端服務。
視應用程式需要處理的流量類型而定,您可以設定外部 Proxy 網路負載平衡器,並搭配目標 TCP Proxy 或目標 SSL Proxy。
- 目標 TCP Proxy:如果您預期會有 TCP 流量,請使用目標 TCP Proxy 設定負載平衡器。
- 目標 SSL Proxy:如果您預期會有加密的用戶端流量,請使用目標 SSL Proxy 設定負載平衡器。這類負載平衡器僅適用於非 HTTP(S) 流量。對於 HTTP(S) 流量,建議您使用外部應用程式負載平衡器。
根據預設,目標 Proxy 不會保留原本的用戶端 IP 位址和通訊埠資訊。如要保留這項資訊,請在目標 Proxy 上啟用 PROXY 通訊協定。
下表列出外部 Proxy 網路負載平衡器的目標 Proxy 需求。
負載平衡器模式 | 網路服務級別 | 目標 Proxy |
---|---|---|
傳統版 Proxy 網路負載平衡器 | 進階級 | targetTcpProxies 或targetSslProxies |
標準級 | targetTcpProxies 或targetSslProxies |
|
全域外部 Proxy 網路負載平衡器 | 進階級 | targetTcpProxies 或targetSslProxies |
區域性外部 Proxy 網路負載平衡器 | 進階級和標準級 | regionTargetTcpProxies |
SSL 憑證
只有在部署全域外部 Proxy 網路負載平衡器和傳統 Proxy 網路負載平衡器時,才需要使用目標 SSL Proxy。
使用目標 SSL Proxy 的外部 Proxy 網路負載平衡器需要私密金鑰和 SSL 憑證,才能完成負載平衡器設定。
Google Cloud 提供兩種設定方法,可將私密金鑰和 SSL 憑證指派給目標 SSL Proxy:Compute Engine SSL 憑證和 Certificate Manager。如要瞭解各項設定,請參閱 SSL 憑證總覽中的「憑證設定方法」。
Google Cloud 提供兩種憑證類型:自行管理和 Google 代管。如要瞭解各類型憑證,請參閱 SSL 憑證總覽中的「憑證類型」。
後端服務
後端服務會將傳入流量導向至一或多個連接的後端。每個後端都由一個執行個體群組或網路端點群組,以及後端的負載能力資訊組成。後端負載能力可以依據 CPU 或每秒要求數 (RPS)。
每個負載平衡器都有單一後端服務資源,可指定要對可用後端執行的健康狀態檢查。
對後端服務所做的變更並不會即時生效。變更可能需要幾分鐘才會傳播至 GFE。為了確保使用者遭遇的中斷情形能降至最低,您可以啟用後端服務的連線排除功能。當後端終止、遭手動移除或由自動配置器移除時,均有可能發生這類中斷情形。如要進一步瞭解如何使用連線排除功能,將服務中斷情形降至最低,請參閱「啟用連線排除功能」。
如要進一步瞭解後端服務資源,請參閱後端服務總覽。
下表列出外部 Proxy 網路負載平衡器後端服務支援的後端。
負載平衡器模式 | 後端服務支援的後端 | ||||||
---|---|---|---|---|---|---|---|
執行個體群組 | 區域性 NEG | 網際網路 NEG | 無伺服器 NEG | 混合式 NEG | Private Service Connect NEG | GKE | |
傳統版 Proxy 網路負載平衡器 | 使用獨立的區域性 NEG | ||||||
全域外部 Proxy 網路負載平衡器 | * | GCE_VM_IP_PORT type
endpoints * |
|||||
區域性外部 Proxy 網路負載平衡器 | GCE_VM_IP_PORT 類型端點 |
僅限區域性 NEG | 新增 Private Service Connect NEG |
* 全域外部 Proxy 網路負載平衡器支援 IPv4 和 IPv6 (雙重堆疊) 執行個體群組,以及具有 GCE_VM_IP_PORT
端點的可用區 NEG 後端。
後端和虛擬私有雲網路
如果是全域外部 Proxy 網路負載平衡器和傳統 Proxy 網路負載平衡器後端,執行個體群組後端的所有後端執行個體,以及 NEG 後端的所有後端端點,都必須位於同一個專案。不過,執行個體群組後端或 NEG 可以在該專案中使用不同的 VPC 網路。由於 GFE 會直接與各自虛擬私有雲網路中的後端通訊,因此不需要使用虛擬私有雲網路對等互連功能連接不同的虛擬私有雲網路。
區域性外部 Proxy 網路負載平衡器後端適用下列規定:
對於執行個體群組、區域 NEG 和混合式連線 NEG,所有後端都必須與後端服務位於相同的專案和區域。不過,負載平衡器可以參照使用不同 VPC 網路的後端,但必須與後端服務位於同一專案。 您可以使用虛擬私有雲網路對等互連、Cloud VPN 通道、Cloud Interconnect VLAN 連結或 Network Connectivity Center 架構,設定負載平衡器的虛擬私有雲網路與後端虛擬私有雲網路之間的連線。
後端網路定義
- 對於區域 NEG 和混合式 NEG,您在建立 NEG 時會明確指定虛擬私有雲網路。
- 如果是代管執行個體群組,虛擬私有雲網路是在執行個體範本中定義。
- 對於非代管執行個體群組,系統會將執行個體群組的虛擬私有雲網路設為與新增至執行個體群組的第一個 VM 的
nic0
介面虛擬私有雲網路相符。
後端網路需求
後端的網路必須符合下列任一網路需求:
後端的虛擬私有雲網路必須與轉送規則的虛擬私有雲網路完全相符。
後端的虛擬私有雲網路必須使用虛擬私有雲網路對等互連,連線至轉送規則的虛擬私有雲網路。您必須設定子網路路徑交換,允許轉送規則虛擬私有雲網路中的僅限 Proxy 子網路,與後端執行個體或端點使用的子網路之間進行通訊。
- 後端的 VPC 網路和轉送規則的 VPC 網路都必須是VPC 輪輻,且附加至相同的 Network Connectivity Center 中樞。匯入和匯出篩選器必須允許轉送規則的虛擬私有雲網路中,僅限 Proxy 的子網路,與後端執行個體或端點使用的子網路之間進行通訊。
如果是其他後端類型,所有後端都必須位於同一個虛擬私有雲網路和區域。
後端和網路介面
如果您使用執行個體群組後端,封包一律會傳送至 nic0
。如要將封包傳送至非 nic0
介面 (vNIC 或動態網路介面),請改用 NEG 後端。
如果您使用區域 NEG 後端,封包會傳送至 NEG 中端點所代表的任何網路介面。NEG 端點必須與 NEG 明確定義的 VPC 網路位於同一個 VPC 網路。
與後端通訊的通訊協定
為外部 Proxy 網路負載平衡器設定後端服務時,請設定後端服務用來與後端通訊的通訊協定。
- 如果是傳統版 Proxy 網路負載平衡器,您可以選擇 TCP 或 SSL。
- 如果是全域外部 Proxy 網路負載平衡器,您可以選擇 TCP 或 SSL。
- 如果是區域性外部 Proxy 網路負載平衡器,則可使用 TCP。
負載平衡器只會使用您指定的通訊協定,不會嘗試與其他通訊協定交涉建立連線。
防火牆規則
您必須使用下列防火牆規則:
如果是傳統版 Proxy 網路負載平衡器,則需要輸入
allow
防火牆規則,允許來自 GFE 的流量連線至後端。如果是全域外部 Proxy 網路負載平衡器,則需要輸入
allow
防火牆規則,允許流量從 GFE 傳送至後端。
如果是區域性外部 Proxy 網路負載平衡器,則為允許流量從僅限 Proxy 的子網路傳送至後端的輸入防火牆規則。
輸入
allow
防火牆規則,允許來自健康狀態檢查探測範圍的流量傳送至後端。如要進一步瞭解健康狀態檢查探測器,以及為何必須允許來自探測器的流量,請參閱「探測器 IP 範圍和防火牆規則」。
防火牆規則是在 VM 執行個體層級實作,而非 GFE Proxy 層級。您無法使用防火牆規則,防止流量傳送至負載平衡器。
這些防火牆規則的通訊埠必須設定如下:
- 允許流量前往每個後端服務健康狀態檢查的目的地通訊埠。
- 如果是執行個體群組後端:請根據後端服務的具名通訊埠與每個執行個體群組中與該具名通訊埠相關聯的通訊埠號碼之間的對應關係,判斷要設定的通訊埠。指派給相同後端服務的執行個體群組,通訊埠編號可能不同。
- 如果是
GCE_VM_IP_PORT NEG
區域 NEG 後端:允許流量傳送至端點的通訊埠編號。
下表摘要說明防火牆規則的必要來源 IP 位址範圍。
負載平衡器模式 | 健康狀態檢查來源範圍 | 要求來源範圍 |
---|---|---|
全域外部 Proxy 網路負載平衡器 |
如要將 IPv6 流量傳送至後端:
|
GFE 流量來源取決於後端類型:
|
傳統版 Proxy 網路負載平衡器 |
|
這些範圍適用於健康狀態檢查探測和 GFE 的要求。 |
區域性外部 Proxy 網路負載平衡器 *、† |
如要將 IPv6 流量傳送至後端:
|
這些範圍適用於健康狀態檢查探測要求。 |
* 混合式 NEG 不必允許來自 Google 健康狀態檢查探測範圍的流量。不過,如果您在單一後端服務中同時使用混合式和區域 NEG,則必須允許區域 NEG 接收來自 Google 健康狀態檢查探測範圍的流量。
† 對於區域性網際網路 NEG,健康狀態檢查為選用項目。使用區域性網際網路 NEG 的負載平衡器流量,會來自僅限 Proxy 的子網路,然後透過 NAT 轉換 (使用 Cloud NAT) 為手動或自動分配的 NAT IP 位址。這類流量包括健康狀態檢查探測,以及負載平衡器傳送至後端的使用者要求。詳情請參閱「區域性 NEG:使用 Cloud NAT 閘道」。
來源 IP 位址
後端看到的封包來源 IP 位址「不是」負載平衡器的外部 IP 位址。Google Cloud 換句話說,會有兩個 TCP 連線。
傳統版 Proxy 網路負載平衡器和全域外部 Proxy 網路負載平衡器:連線 1:從原始用戶端到負載平衡器 (GFE):
- 來源 IP 位址:原始用戶端 (或外部 IP 位址,如果用戶端位於 NAT 閘道或轉送 Proxy 後方)。
- 目的地 IP 位址:負載平衡器的 IP 位址。
連線 2:從負載平衡器 (GFE) 到後端 VM 或端點:
來源 IP 位址:防火牆規則中指定範圍內的 IP 位址。
目的地 IP 位址:虛擬私有雲網路中後端 VM 或容器的內部 IP 位址。
連線 1:從原始用戶端到負載平衡器 (僅限 Proxy 的子網路):
- 來源 IP 位址:原始用戶端 (或外部 IP 位址,如果用戶端位於 NAT 閘道或轉送 Proxy 後方)。
- 目的地 IP 位址:負載平衡器的 IP 位址。
連線 2:從負載平衡器 (僅限 Proxy 子網路) 到後端 VM 或端點:
來源 IP 位址:僅限 Proxy 的子網路中的 IP 位址,與部署在相同地區和網路的負載平衡器共用。
目的地 IP 位址:虛擬私有雲網路中後端 VM 或容器的內部 IP 位址。
開放的通訊埠
外部 Proxy 網路負載平衡器是反向 Proxy 負載平衡器。這類的負載平衡器會終止連入的連線,然後從負載平衡器開啟連至後端的新連線。這些負載平衡器是透過全球的 Google Front End (GFE) Proxy 實作。
GFE 具有多個開啟的通訊埠,以支援在同一架構上執行的其他 Google 服務。執行通訊埠掃描時,您可能會看到在 GFE 上執行的其他 Google 服務,以及其他開啟的通訊埠。
從稽核角度來看,對以 GFE 為基礎的負載平衡器 IP 位址執行通訊埠掃描並無用處,原因如下:
執行 TCP SYN 探測時,連接埠掃描 (例如使用
nmap
) 通常不會預期有任何回應封包或 TCP RST 封包。只有在您已為通訊埠設定轉送規則時,GFE 才會傳送 SYN-ACK 封包來回應 SYN 探查。只有在收到傳送至負載平衡器 IP 位址和轉送規則中設定目的地通訊埠的封包時,GFE 才會將封包傳送至後端。傳送至其他 IP 位址或通訊埠的封包不會傳送至後端。GFE 會實作 Google Cloud Armor 等安全功能。透過 Cloud Armor Standard,GFE 可全天候防範巨流量和通訊協定型 DDoS 攻擊,以及 SYN 洪水攻擊。即使您未明確設定 Cloud Armor,也能享有這項保護措施。只有在設定安全政策或註冊 Managed Protection Plus 時,系統才會向您收費。
傳送至負載平衡器 IP 位址的封包可由 Google 叢集中的任何 GFE 回應;不過,掃描負載平衡器 IP 位址和目的地連接埠組合時,每個 TCP 連線只會查詢單一 GFE。負載平衡器的 IP 位址不會指派給單一裝置或系統。因此,掃描以 GFE 為基礎的負載平衡器 IP 位址,並不會掃描 Google 機群中的所有 GFE。
有鑑於此,以下提供幾種更有效率的稽核方式,可確保後端執行個體的安全性:
安全稽核人員應檢查負載平衡器設定的轉送規則設定。轉送規則會定義負載平衡器接受封包並轉送至後端的目的地通訊埠。如果是以 GFE 為基礎的負載平衡器,每個外部轉送規則只能參照單一目的地 TCP 通訊埠。
安全稽核人員應檢查適用於後端 VM 的防火牆規則設定。您設定的防火牆規則會封鎖 GFE 到後端 VM 的流量,但不會封鎖傳入 GFE 的流量。如需最佳做法,請參閱防火牆規則一節。
共用 VPC 架構
區域性外部 Proxy 網路負載平衡器 和傳統版 Proxy 網路負載平衡器 支援使用共用 VPC 網路的部署作業。共用虛擬私有雲可讓您明確區隔網路管理員和服務開發人員的職責。開發團隊可以專心在服務專案中建構服務,網路基礎架構團隊則可佈建及管理負載平衡。如果您還不熟悉共用虛擬私有雲,請參閱共用虛擬私有雲總覽說明文件。
IP 位址 | 轉送規則 | 目標 Proxy | 後端元件 |
---|---|---|---|
外部 IP 位址必須與負載平衡器定義在同一個專案中。 | 外部轉送規則必須在後端執行個體所屬專案 (服務專案) 中定義。 | 目標 TCP或 SSL Proxy 必須與後端執行個體定義在同一個專案中。 |
如果是傳統 Proxy 網路負載平衡器,則必須在後端執行個體所屬專案中定義全域後端服務。這些執行個體必須在附加至後端服務做為後端的執行個體群組中。定義與後端服務相關的健康狀態檢查時,所在的專案必須與後端服務所在專案相同。 對於區域性外部 Proxy 網路負載平衡器,後端 VM 通常位於服務專案中。必須在該服務專案中定義地區後端服務和健康狀態檢查。 |
流量分配
將後端執行個體群組或 NEG 新增至後端服務時,請指定負載平衡模式,定義測量後端負載和目標容量的方法。
如果是外部 Proxy 網路負載平衡器,平衡模式可以是 CONNECTION
或 UTILIZATION
:
- 如果負載平衡模式為
CONNECTION
,系統會根據後端可處理的連線總數分配負載。 - 如果負載平衡模式為
UTILIZATION
,系統會根據執行個體群組中執行個體的使用率分配負載。這個平衡模式僅適用於 VM 執行個體群組後端。
流量在後端之間的分配方式,取決於負載平衡器的平衡模式。
傳統版 Proxy 網路負載平衡器
對於傳統版 Proxy 網路負載平衡器,平衡模式用於選取最合適的後端 (執行個體群組或 NEG)。然後,流量會以循環方式分配給後端中的執行個體或端點。
連線分配方式
傳統 Proxy 網路負載平衡器可設為進階級的全球負載平衡服務,以及標準級的區域服務。
平衡模式和目標選擇會決定後端飽和度,從每個區域 GCE_VM_IP_PORT
NEG、區域執行個體群組或區域執行個體群組區域的角度來看,接著,系統會使用一致性雜湊,在區域內分配流量。
進階級
您只能有一個後端服務,且後端服務可有多個區域的後端。如果是全域負載平衡,您可以在多個區域部署後端,負載平衡器會自動將流量導向至最靠近使用者的區域。如果某地區的容量已達上限,負載平衡器會自動將新的連線導向至另一個有可用容量的地區。現有的使用者連線會保留在目前所在地區。
Google 會從全球各地的網路邊緣服務點 (POP) 宣傳負載平衡器的 IP 位址。每個負載平衡器 IP 位址都是全域任一傳播位址。
如果您設定的後端服務包含多個區域的後端,Google 前端 (GFE) 會嘗試將要求導向最接近使用者的區域中,健康狀態良好的後端執行個體群組或 NEG。
標準級
Google 會從與轉送規則區域相關聯的存取點,宣傳負載平衡器的 IP 位址。負載平衡器會使用區域外部 IP 位址。
您只能在與轉送規則相同的區域中設定後端。負載平衡器只會將要求導向該區域中健康狀態良好的後端。
全域外部 Proxy 網路負載平衡器
全域外部 Proxy 網路負載平衡器會根據負載平衡模式和負載平衡地區政策分配流量。
平衡模式會決定要傳送至每個群組 (執行個體群組或 NEG) 的流量權重和比例。負載平衡地區政策 (LocalityLbPolicy
) 會決定如何對群組內的後端進行負載平衡。
後端服務收到流量時,會先根據後端的平衡模式,將流量導向後端 (執行個體群組或 NEG)。選取後端後,系統會根據負載平衡區域政策,在該後端群組的執行個體或端點之間分配流量。
如要瞭解詳情,請參考下列資源:
連線分配方式
全域外部 Proxy 網路負載平衡器可設為全球負載平衡服務,並使用進階級別
平衡模式和目標選擇會決定每個區域 GCE_VM_IP_PORT
NEG 或區域執行個體群組的後端飽和度。接著,系統會使用一致性雜湊,在區域內分配流量。
您只能有一個後端服務,且後端服務可有多個區域的後端。如果是全域負載平衡,您可以在多個區域部署後端,負載平衡器會自動將流量導向至最靠近使用者的區域。如果某地區的容量已達上限,負載平衡器會自動將新的連線導向至另一個有可用容量的地區。現有的使用者連線會保留在目前所在地區。
Google 會從全球各地的網路邊緣服務點 (POP) 宣傳負載平衡器的 IP 位址。每個負載平衡器 IP 位址都是全域任一傳播位址。
如果您設定的後端服務包含多個區域的後端,Google 前端 (GFE) 會嘗試將要求導向最接近使用者的區域中,健康狀態良好的後端執行個體群組或 NEG。
區域性外部 Proxy 網路負載平衡器
如果是區域性外部 Proxy 網路負載平衡器,流量分配會根據負載平衡模式和負載平衡地區政策。
平衡模式會決定應傳送至每個後端 (執行個體群組或 NEG) 的流量權重和比例。負載平衡地區政策 (LocalityLbPolicy
) 會決定如何對群組內的後端進行負載平衡。
後端服務收到流量後,會先根據平衡模式將流量導向後端 (執行個體群組或 NEG)。選取後端後,系統會根據負載平衡區域政策,在該後端群組的執行個體或端點之間分配流量。
如要瞭解詳情,請參考下列資源:
工作階段相依性
您可以設定負載平衡器的後端服務,讓工作階段相依性將來自同一個用戶端的所有要求傳送至同一個後端,只要該後端保持良好健康狀態並具有容量即可。
外部 Proxy 網路負載平衡器提供下列類型的工作階段相依性:無
工作階段相依性設定為
NONE
「不代表沒有工作階段相依性」。這表示未明確設定任何工作階段相依性選項。一律會執行雜湊作業來選取後端。如果工作階段相依性設定為
NONE
,負載平衡器會使用 5 元組雜湊選取後端。5 元組雜湊碼包含來源 IP 位址、來源通訊埠、通訊協定、目的地 IP 位址和目的地通訊埠。預設值為
NONE
的工作階段親和性。用戶端 IP 相依性
用戶端 IP 工作階段相依性 (
CLIENT_IP
) 是由封包的來源和目的地 IP 位址建立的 2 元組雜湊。只要後端有容量且保持良好健康狀態,用戶端 IP 相依性就會將來自相同用戶端 IP 位址的所有要求轉送至同一個後端。使用用戶端 IP 相依性時,請注意下列事項:
- 只有在封包直接傳送至負載平衡器時,封包目的地 IP 位址才會與負載平衡器轉送規則的 IP 位址相同。
- 如果封包在傳遞至 Google Cloud 負載平衡器之前,會先經過中繼 NAT 或 Proxy 系統處理,則封包來源 IP 位址可能與原始用戶端相關聯的 IP 位址不符。如果許多用戶端共用相同的有效來源 IP 位址,部分後端 VM 收到的連線或要求可能會比其他 VM 多。
設定工作階段親和性時,請注意下列事項:
請勿將工作階段親和性用於驗證或安全用途。 只要放送和健康狀態良好的後端數量有變,工作階段相依性就會中斷。詳情請參閱「失去工作階段親和性」。
--session-affinity
和--subsetting-policy
旗標的預設值都是NONE
,且一次只能將其中一個旗標設為不同值。
失去工作階段相依性
所有工作階段相依性選項都必須符合下列條件:
- 選取的後端執行個體或端點必須維持後端設定。發生下列任一事件時,工作階段親和性可能會中斷:
- 從執行個體群組中移除所選執行個體。
- 代管執行個體群組的自動調度資源或自動修復功能,會從代管執行個體群組中移除所選執行個體。
- 從 NEG 移除所選端點。
- 從後端服務中移除包含所選執行個體或端點的執行個體群組或 NEG。
- 所選後端執行個體或端點必須保持正常運作。如果所選執行個體或端點未通過健康狀態檢查,工作階段相依性可能會中斷。
- 如果是全域外部 Proxy 網路負載平衡器和傳統 Proxy 網路負載平衡器,如果後續要求或連線使用不同的第一層 Google Front End (GFE),工作階段親和性可能會在路由路徑變更後中斷。如果網際網路上用戶端到 Google 的路徑在要求或連線之間有所變更,系統可能會選取不同的第一層 GFE。
包含所選執行個體或端點的執行個體群組或 NEG,不得達到目標容量上限。(如果是地區代管執行個體群組,包含所選執行個體的執行個體群組區域元件不得已滿)。如果執行個體群組或 NEG 已滿,但其他執行個體群組或 NEG 未滿,工作階段相依性可能會中斷。使用
UTILIZATION
平衡模式時,飽和度可能會以無法預測的方式變化,因此您應使用RATE
或CONNECTION
平衡模式,盡量避免工作階段相依性中斷。設定的後端執行個體或端點總數必須維持不變。發生下列任一事件時,設定的後端執行個體或端點數量會變更,工作階段親和性可能會中斷:
新增執行個體或端點:
- 將執行個體新增至後端服務上現有的執行個體群組。
- 代管執行個體群組自動調度功能會將執行個體新增至後端服務的代管執行個體群組。
- 將端點新增至後端服務中的現有 NEG。
- 將非空白的執行個體群組或 NEG 新增至後端服務。
移除任何執行個體或端點,不只是所選執行個體或端點:
- 從執行個體群組後端移除任何執行個體。
- 代管執行個體群組的自動調度資源或自動修復功能,會從代管執行個體群組後端移除所有執行個體。
- 從 NEG 後端移除任何端點。
- 從後端服務中移除任何現有的非空白後端執行個體群組或 NEG。
健康狀態良好的後端執行個體或端點總數必須維持不變。發生下列任一事件時,健康狀態良好的後端執行個體或端點數量會變更,工作階段相依性可能會中斷:
- 任何執行個體或端點通過健康狀態檢查,從健康狀態不良轉為健康狀態良好。
- 任何執行個體或端點未通過健康狀態檢查,從健康狀態良好轉為健康狀態不良或逾時。
容錯移轉
外部 Proxy 網路負載平衡器的容錯移轉功能運作方式如下:
- 如果後端健康狀態不佳,系統會自動將流量重新導向至同一區域內健康狀態良好的後端。
- 如果某個區域內的所有後端健康狀態都不良,流量會分配到其他區域中健康狀態良好的後端 (僅限全域和傳統模式)。
- 如果所有後端都不健康,負載平衡器會捨棄流量。
GKE 應用程式的負載平衡
如果您在 Google Kubernetes Engine 中建構應用程式,可以使用獨立的 NEG,直接將流量負載平衡至容器。使用獨立 NEG 時,您必須負責建立會建立 NEG 的 Service 物件,然後將 NEG 與後端服務建立關聯,讓負載平衡器可以連線至 Pod。
如需相關說明文件,請參閱「透過獨立的區域 NEG 使用容器原生負載平衡功能」。
限制
您無法使用Google Cloud 控制台 ,在進階層中建立地區外部 Proxy 網路負載平衡器。此外,只有支援標準層的區域,才能在Google Cloud 控制台 中使用這些負載平衡器。請改用 gcloud CLI 或 API。
使用外部 Proxy 網路負載平衡器時,Google Cloud 不會對 TCP 連線的生命週期做出任何保證。用戶端應能因應連線中斷,包括更廣泛的網際網路問題,以及管理連線的 Proxy 定期排定的重新啟動。
下列限制僅適用於透過 SSL 目標 Proxy 部署的傳統版 Proxy 網路負載平衡器和全域外部 Proxy 網路負載平衡器:
傳統版 Proxy 網路負載平衡器和全域外部 Proxy 網路負載平衡器不支援以用戶端憑證為基礎的驗證,這種驗證方式又稱為雙向 TLS 驗證。
傳統版 Proxy 網路負載平衡器和全域外部 Proxy 網路負載平衡器,僅支援憑證共用名稱 (
CN
) 屬性或主體別名 (SAN
) 屬性中的網域使用小寫字元。只有在目標 Proxy 中設為主要憑證時,系統才會傳回網域含有大寫字元的憑證。
後續步驟
- 設定傳統版 Proxy 網路負載平衡器 (TCP Proxy)。
- 設定傳統版 Proxy 網路負載平衡器 (SSL Proxy)。
- 設定全域外部 Proxy 網路負載平衡器 (TCP Proxy)。
- 設定全域外部 Proxy 網路負載平衡器 (SSL Proxy)。