全域外部直通式網路負載平衡器屬於第 4 層直通式負載平衡器,可將外部流量分配給位於多個 Google Cloud 區域的後端 (執行個體群組或網路端點群組)。這些負載平衡器建構於Maglev,服務範圍遍及全球,會透過 Google 的全球網路和控制層互相搭配運作。
全域外部直通式網路負載平衡器會自動將流量導向至後端區域,該區域最靠近使用者流量進入Google全球網路的點。
前提是在兩個以上的區域中設定符合資格的後端:
如果某個區域容量已滿,負載平衡器會自動將超出該區域容量的部分新使用者連線,溢出至下一個最近且有可用容量的區域,同時將現有連線保留在目前區域。
如果某個區域停機,負載平衡器會自動將流量容錯移轉至下一個最近且有可用容量的區域。
全域外部直通式網路負載平衡器可接收來自下列來源的流量:
- 網際網路上的任何用戶端
- Google Cloud 具備外部 IP 的 VM
- Google Cloud 可透過 Cloud NAT 或執行個體型 NAT 存取網際網路的 VM
在下列情況下,請使用全域外部直通式網路負載平衡器:
您需要高效能的第 4 層直通負載平衡器,才能處理 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量。負載平衡器可處理 IPv4 和 IPv6 流量。
您必須接收未經 Proxy 處理的原始封包。 舉例來說,如果需要保留用戶端來源 IP 位址。
您需要使用相同的任意傳播 IP 位址,以低延遲率將流量提供給多個 Google Cloud 區域 的後端。
您需要部署作業能夠自動且順暢地將流量重新導向至下一個容量充足的最近區域,以因應區域後端故障和過載問題。
如要使用全域外部直通式網路負載平衡器,部署作業必須符合下列規定:
- 如果提供 TLS (SSL) 流量,後端必須終止 SSL 流量。 全域外部直通式網路負載平衡器不支援 SSL 終止。
主要功能與特色
全域外部直通式網路負載平衡器支援下列主要功能。
專為高可用性而設計
負載平衡器會提供兩個全域外部任意傳播 IP 位址,每個位址都由不相交且隔離的全域負載平衡控制和資料層伺服器基礎架構 (也稱為可用性群組) 提供服務,以確保高可用性。用戶端可以使用任一 IP 位址,連線至距離最近且有可用容量的正常後端。
建立後端位於多個 Google Cloud 區域的全域後端服務時,負載平衡器可協助您提升服務可用性。如果特定區域的後端發生故障,流量會順暢地容錯移轉至下一個最近的區域。
建議您在至少三個 Google Cloud 區域中部署後端,確保能抵禦區域性中斷,即使您可以在單一 Google Cloud 區域中設定所有後端也一樣。
延遲時間和負載感知平衡
全域外部直通式網路負載平衡器只能使用進階級別。使用進階級時,來自網際網路的連入流量會從最靠近使用者的連接點,進入 Google的高效能低延遲網路。同樣地,傳出流量會透過 Google的網路傳送,並從最靠近使用者的連接點傳出。
全球分散式 Maglev 負載平衡器會將傳入流量轉送至最靠近流量進入Google Cloud 網路的服務點的區域Google,前提是該區域有健康狀態良好且具備可用容量的後端。否則,負載平衡器會自動將流量平穩地溢出至下一個最近的區域,該區域有健康狀態良好的後端,且具有可用容量。
您可決定後端位置和容量,以獲得最佳封包延遲和後端效率。後端容量可依據每秒封包數 (PPS) 傳入速率上限、CPU 使用率上限或兩者設定。後端服務中設定的後端容量,會平均分配給參照後端服務的所有轉送規則 IP 位址。
全域外部直通式網路負載平衡器的運作方式
全域外部直通式網路負載平衡器具有前端 (轉送規則) 和後端 (後端服務及其後端群組)。您可以將執行個體群組或GCE_VM_IP區域性 NEG 做為後端群組。
架構
下圖顯示全域外部直通式網路負載平衡器,將流量分配至多個 Google Cloud 區域的後端。建立負載平衡器時, Google Cloud 系統會指派兩個全域外部任意播送 IP 位址,由不相交且隔離的控制和資料層基礎架構 (也稱為可用性群組,AG0 和 AG1) 提供服務。
這兩個控制和資料平面可為每個全域外部直通式網路負載平衡器提供高可用性、容錯能力和復原能力。一個可用性群組的控制或資料層發生故障,不會影響其他可用性群組。設定正確的用戶端必須能夠連線至兩個負載平衡器的 IP 位址。舉例來說,如果用戶端無法連線至 AG0 IP 位址,就必須設定為連線至 AG1 IP 位址。
負載平衡器包含下列設定元件。
兩個全域外部 IP 位址,分別來自每個可用性群組 (AG0 和 AG1)。可以是靜態或限時動態。詳情請參閱「IP 位址」。
一項全域轉送規則,指定兩個全域外部 IP 位址,分別來自每個可用性群組 (AG0 和 AG1)。建立這項轉送規則時,系統會產生兩項唯讀子項轉送規則,分別對應一個可用性群組,確保高可用性。 Google Cloud 詳情請參閱「轉送規則」。
一個全域後端服務,定義流量如何分配至多個Google Cloud 區域的後端。 後端群組可以是所有執行個體群組 (區域代管執行個體群組或區域非代管執行個體群組),也可以是所有區域 NEG 後端 (具有
GCE_VM_IP端點的區域 NEG)。詳情請參閱「後端服務」。
直接退回伺服器
與其他直通式網路負載平衡器一樣,全域外部直通式網路負載平衡器不是 Proxy。負載平衡器本身不會終止使用者連線,負載平衡封包會傳送至後端 VM,來源和目的地 IP 位址、通訊協定和通訊埠 (如適用) 都不會變更。後端 VM 隨即終止使用者連線,並將回傳封包直接傳送給用戶端。回應不會透過負載平衡器傳回。這項程序稱為「伺服器直接回傳」(DSR)。
負載平衡器 IP 位址的本機路由
與其他直通式網路負載平衡器一樣,全域外部直通式網路負載平衡器不會對 IP 位址或連接埠執行來源或目的地 NAT。
Google Cloud 訪客環境會為每個後端 VM 設定負載平衡器的 IP 位址。VM 本機路由表中的項目會設定後端 VM 的負載平衡網路介面控制器 (NIC),以接受目的地 IP 位址與各個轉送規則 IP 位址相符的封包。詳情請參閱「檢查負載平衡器 IP 位址的本機路由表」。
要求和傳回封包的 IP 位址
後端 VM 從用戶端收到已平衡負載的封包時,封包的來源和目的地如下:
- 來源:與用戶端、 Google Cloud VM 或網際網路上的系統相關聯的外部 IP 位址。
- 目的地:負載平衡器轉送規則的其中一個 IP 位址。
雖然客體環境會自動設定本機路徑,讓 VM 的作業系統接受傳送至負載平衡器 IP 位址的流量,但如果應用程式設定為僅監聽 VM 的指派內部 IP 位址,作業系統就無法將這些封包傳送至應用程式。
為確保作業系統將封包傳送至應用程式,請設定在後端 VM 上執行的應用程式,以執行下列操作:
- 監聽 (繫結至) 負載平衡器的轉送規則 IP 位址或任何 IP 位址 (
0.0.0.0或::)
- 如果負載平衡器轉送規則的通訊協定支援通訊埠,請監聽 (繫結至) 負載平衡器轉送規則中包含的通訊埠
回傳封包會從負載平衡器的後端 VM 直接傳送至用戶端。回傳封包的來源 IP 位址取決於通訊協定:
- TCP 是以連線為導向,因此後端 VM 必須回覆來源 IP 位址與要求封包目的地 IP 位址相符的封包,用戶端才能將回應封包與適當的 TCP 連線建立關聯。
- UDP、ESP、GRE、ICMP 和 ICMPv6 都是無連線通訊協定。後端 VM 可以傳送回應封包,來源 IP 位址必須與轉送規則的 IP 位址相符,或與 VM 的任何指派外部 IP 位址相符。實際上,大多數用戶端都希望回應來自傳送封包的 IP 位址。
下表彙整回應封包的來源和目的地 IP 位址:
| 流量類型 | 來源 | 目的地 |
|---|---|---|
| TCP | 要求封包的目的地 | 要求封包的來源 |
| UDP、ESP、GRE、ICMP 和 ICMPv6 | 在大多數情況中,要求封包的目的地1 | 要求封包的來源 |
1 如果 VM 具有外部 IP 位址,或您使用 Cloud NAT,也可以將回應封包的來源 IP 位址設為 VM NIC 的主要內部 IPv4 位址。 Google Cloud 或 Cloud NAT 會將回應封包的來源 IP 位址變更為 NIC 的外部 IPv4 位址或 Cloud NAT 外部 IPv4 位址,以便將回應封包傳送至用戶端的外部 IP 位址。不使用轉送規則的 IP 位址做為來源是進階情境,因為用戶端會從外部 IP 位址收到回應封包,但該 IP 位址與用戶端傳送要求封包的 IP 位址不符。
元件
以下各節會詳細說明全域外部直通式網路負載平衡器的各個設定元件。
IP 位址
全域外部直通式網路負載平衡器需要兩個全域外部 IP 位址,才能提供高可用性。負載平衡器的轉送規則會使用這些位址接受連入流量,且必須屬於相同的 IP 版本 (IPv4 或 IPv6)。 Google Cloud 會從全球所有 PoP 宣傳負載平衡器的 IP 位址。每個負載平衡器 IP 位址都是全域任播 IP 位址,僅支援進階級。
這兩個 IP 位址必須來自屬於不同可用性群組的全域外部 IP 位址集區。IP 位址不會與虛擬私有雲網路中的子網路建立關聯。在 API 中,可用性群組會以 globalAddresses 資源的 purpose 欄位表示:
PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP0:適用於可用性群組 0 的地址。PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP1:適用於可用性群組 1 位址。
轉送規則資源的 IPAddresses 欄位會指定零個、一個或兩個 IP 位址:
- 如果省略, Google Cloud 會指派兩個暫時性 IP 位址,每個可用性群組各一個。
- 如果您指定的 IP 位址參照某個可用性群組的現有靜態 IP 位址資源, Google Cloud 會從另一個可用性群組指派臨時 IP 位址。
- 如果您指定兩個參照現有靜態 IP 位址資源的 IP 位址,這兩個位址必須來自不同的可用性群組。
如果您需要保留與專案相關聯的位址,以便在刪除轉送規則後重複使用,或是需要多個轉送規則參照相同 IP 位址,請為轉送規則使用保留的靜態 IP 位址。
如果是全域外部直通式網路負載平衡器轉送規則,IP 位址可以是下列其中一種:
- Google 擁有的全域 IP 位址集區中的靜態或臨時 IPv4 位址。
- 來自 Google 擁有的全域 IP 位址集區,屬於靜態或暫時性的外部 IPv6 位址範圍。
/96 - 來自全域公開委派前置字串的靜態 IPv4 BYOIP 位址。
全域外部直通式網路負載平衡器僅支援 IPv4 位址的自帶 IP 位址 (BYOIP)。支援僅限於 v1 BYOIP API。新的 IPv4 範圍最多可能需要 4 週才能完成佈建,且沒有任何 API 可供您控管 BGP 播送狀態。詳情請參閱「自備 IP 設定」。
轉送規則的 IPAddresses 欄位只能在建立時設定,無法更新。
無論來源為何 (Google 擁有或 BYOIP), Google Cloud 中的全域外部 IP 位址都是從三種不同的全域外部 IP 位址集區中提取:
- 全域外部直通式網路負載平衡器用於可用性群組 AG0 的 IP 位址集區
- 全域外部直通式網路負載平衡器用於可用性群組 AG1 的 IP 位址集區
- 全域外部 Proxy 型負載平衡器使用的 IP 位址集區
因此,全域外部直通式網路負載平衡器無法與任何其他全域或區域性負載平衡器共用 IP 位址。
通用轉送規則
全域外部直通式網路負載平衡器轉送規則會構成負載平衡器的前端,指定負載平衡器接受流量的目的地 IP 位址、通訊協定和通訊埠。全域外部直通式網路負載平衡器不是 Proxy,因此會將流量傳送至後端,且不會修改來源和目的地 IP 位址、通訊協定和通訊埠 (如果通訊協定攜帶通訊埠資訊)。
您設定的全域外部直通式網路負載平衡器轉送規則會指定下列項目:
- 負載平衡架構指定為
EXTERNAL_PASSTHROUGH。 IPAddresses[]欄位中的一對全域 IP 位址,分別來自每個可用性群組。- 通訊協定 (
TCP、UDP或L3_DEFAULT) 和通訊埠。
針對您建立的每個全域外部直通式網路負載平衡器轉送規則 (也稱為父項轉送規則), Google Cloud會為每個負載平衡堆疊產生兩個唯讀子項轉送規則,分別是 AVAILABILITY_GROUP0 和 AVAILABILITY_GROUP1。子項轉送規則的 IP 通訊協定、通訊埠和後端服務設定與父項轉送規則相同,但只具有父項轉送規則的兩個 IP 位址之一。
子轉送規則會附加 -ag0 和 -ag1 至父轉送規則名稱,因此可明確識別。不會消耗額外配額或產生額外費用。監控指標和健康狀態會在子項轉送規則層級回報。
傳入流量會與轉送規則比對,將封包的目的地 IP 位址、通訊協定和通訊埠,與轉送規則欄位的組合(兩個 IP 位址、通訊協定,以及通訊協定是否以通訊埠為準,如果是,則為一個或多個通訊埠、通訊埠範圍或所有通訊埠) 比對。轉送規則接著會將流量導向負載平衡器的後端服務。
全域外部直通式網路負載平衡器的轉送規則可設定 IPv4 或 IPv6 位址。如要讓負載平衡器同時處理 IPv4 和 IPv6 流量,請建立兩項轉送規則:
指向僅限 IPv4 或雙重堆疊後端的 IPv4 流量轉送規則
指向僅限 IPv6 或雙重堆疊後端的 IPv6 流量轉送規則
IPv4 和 IPv6 轉送規則可以參照同一個後端服務,但後端服務必須參照具有雙重堆疊 VM 網路介面的後端。
轉送規則的 IP 版本應與後端 VM 網路介面的堆疊類型相符。
| 後端 VM 網路介面的堆疊類型 | 轉送規則 |
|---|---|
僅支援 IPv4 (IPV4_ONLY) 的 VM 網路介面 |
只能做為 IPv4 轉送規則的後端。 |
僅支援 IPv6 (IPV6_ONLY) 的 VM 網路介面 |
只能做為 IPv6 轉送規則的後端。 |
雙堆疊 (IPV4_IPV6) VM 網路介面 |
可做為 IPv4 轉送規則、IPv6 轉送規則或兩者的後端。 |
轉送規則通訊協定
全域外部直通式網路負載平衡器支援下列通訊協定選項,適用於各項轉送規則:TCP、UDP 和 L3_DEFAULT。
使用 TCP 和 UDP 選項分別設定 TCP 或 UDP 負載平衡。L3_DEFAULT 通訊協定選項可讓全域外部直通式網路負載平衡器,對 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量進行負載平衡。
除了支援 TCP 和 UDP 以外的通訊協定,L3_DEFAULT 也讓單一轉送規則能夠服務多個通訊協定。舉例來說,IPsec 服務通常會處理 ESP 和以 UDP 為基礎的 IKE 和 NAT-T 流量。L3_DEFAULT 選項可讓您設定單一轉送規則,處理所有這些通訊協定。
如果您使用 L3_DEFAULT 協定,必須設定轉送規則,接受所有通訊埠的流量。由於 L3_DEFAULT 是適用於所有情況的規則,因此建議您採用安全最佳做法,設定只允許所需 IP 通訊協定和通訊埠的輸入允許防火牆規則。
多個轉送規則
您可以設定多個轉送規則,規則類型有兩種:
相同 IP 位址有多個轉送規則。只要沒有兩個轉送規則使用相同的通訊協定和通訊埠組合,您就可以為相同的 IP 位址組合設定多個轉送規則。每項轉送規則可有不同的後端服務,多項轉送規則也可有相同的後端服務。
多項轉送規則參照相同的後端服務。 您可以設定多項轉送規則,參照同一個後端服務。如符合第一點所述條件,兩項以上的轉送規則可以使用相同的 IP 位址配對,或每項轉送規則可以使用不重複的 IP 位址配對。凡是參照相同後端服務的所有轉送規則,其所有 IP 位址的流量都會公平共用後端目標容量。
不過,全域外部直通式網路負載平衡器和全域外部應用程式負載平衡器/全域外部 Proxy 網路負載平衡器無法共用同一個全域外部 IP 位址。
使用多項轉送規則時,請務必設定在後端 VM 上執行的應用程式,以便繫結至負載平衡器轉送規則的所有外部 IP 位址。
設定多個轉送規則在下列情況中非常實用:
- 您需要為同一個後端服務設定多個外部 IP 位址配對。舉例來說,一個用於 IPv4 位址的轉送規則,另一個用於 IPv6 位址。
- 您需要為同一個外部 IP 位址配對設定多項轉送規則,但通訊協定不同,或通訊埠/通訊埠範圍不重疊。轉送規則可以使用相同或不同的後端服務。
多個轉送規則的通訊協定和通訊埠限制
Google Cloud 最多會選取一項轉送規則來處理傳入的封包。使用相同全域外部 IP 位址配對的兩條以上轉送規則,必須根據下列限制條件,採用不重複的通訊協定和通訊埠組合:如果為通訊協定的所有通訊埠設定轉送規則,就無法使用相同的通訊協定和 IP 位址配對建立其他轉送規則。
使用
TCP或UDP通訊協定的轉送規則可設為使用所有通訊埠,或設為使用特定通訊埠。舉例來說,如果您使用 IP 位址配對 (
136.124.69.214和136.124.83.205)、TCP通訊協定和所有通訊埠建立轉送規則,就無法使用相同的 IP 位址配對和TCP通訊協定建立任何其他轉送規則。如果每個規則都有專屬通訊埠或不重疊的通訊埠範圍,您可以建立兩個轉送規則,兩者都使用 IP 位址配對和
TCP通訊協定。舉例來說,您可以建立兩項轉送規則,使用相同的 IP 位址配對和TCP通訊協定,其中一項轉送規則的通訊埠為80,443,另一項則使用通訊埠範圍81-442。每個 IP 位址配對只能建立一個
L3_DEFAULT轉送規則。這是因為根據定義,
L3_DEFAULT通訊協定會使用所有通訊埠。在此情況下,「所有通訊埠」一詞包含沒有通訊埠資訊的通訊協定。單一
L3_DEFAULT轉送規則可與使用特定通訊協定 (TCP或UDP) 和相同 IP 位址配對的其他轉送規則共存。如果 IP 位址配對已附加特定 TCP 或 UDP 轉送規則,您也可以將
L3_DEFAULT轉送規則附加至該 IP 位址配對,做為不符合特定轉送規則的任何流量的備援。只有在封包的目的地 IP 位址、通訊協定和目的地通訊埠與通訊協定專屬轉送規則不符時,L3_DEFAULT轉送規則才會處理傳送至目的地 IP 位址的封包。我們透過以下兩種情境來說明。在這兩種情況下,轉送規則都使用相同的 IP 位址配對:
136.124.69.214和136.124.83.205。情境 1。第一項轉送規則使用
L3_DEFAULT協定。 第二條轉送規則使用TCP通訊協定和所有通訊埠。 傳送至任一 IP 位址任何目的地通訊埠的 TCP 封包,都會由第二條更具體的轉送規則處理。使用不同通訊協定的封包會由第一個轉送規則處理。情境 2。第一項轉送規則使用
L3_DEFAULT協定。 第二條轉送規則使用TCP通訊協定和通訊埠8080。傳送至任一 IP 位址 8080 通訊埠的 TCP 封包,都會由第二條轉送規則處理。所有其他封包 (包括傳送至不同目的地連接埠的 TCP 封包) 都會由第一條轉送規則處理。
選取轉送規則
Google Cloud 使用這項淘汰程序,選取一或零個轉送規則來處理傳入的封包,首先從與封包目的地 IP 位址相符的轉送規則候選項目集開始:
排除通訊協定與封包通訊協定不符的轉送規則,
L3_DEFAULT轉送規則除外。使用L3_DEFAULT通訊協定的轉送規則永遠不會在這個步驟中遭到淘汰,因為L3_DEFAULT會比對所有通訊協定。舉例來說,如果封包的通訊協定是 TCP,系統只會排除使用UDP通訊協定的轉送規則。排除通訊埠與封包通訊埠不符的轉送規則。 為所有通訊埠設定的轉送規則永遠不會因這個步驟而遭到淘汰,因為所有通訊埠的轉送規則會比對任何通訊埠。
此時,其餘候選轉送規則會歸入下列其中一類:
系統會保留兩項轉送規則:
L3_DEFAULT轉送規則和通訊協定專屬轉送規則。使用通訊協定專用轉送規則,將封包路由傳送至目的地。系統會保留一項轉送規則,可能是
L3_DEFAULT轉送規則,也可能是通訊協定專屬轉送規則。用於轉送封包。沒有任何轉送規則候選項目,因此封包遭到捨棄。
全域後端服務
全域外部直通式網路負載平衡器的後端服務會將傳入流量分配給附加的後端,這些後端可位於多個 Google Cloud 區域。每個後端都由執行個體群組或網路端點群組組成,並包含後端服務容量的相關資訊。後端服務負載能力可依據 CPU 使用率、每秒傳入封包數 (PPS) 或兩者設定。後端服務會根據設定的親和性和容量設定,管理流量分配作業。
後端服務會定義下列後端參數:
負載平衡架構。如要為全域外部直通式網路負載平衡器指定後端服務,負載平衡架構必須明確設為
EXTERNAL_PASSTHROUGH。通訊協定。後端服務通訊協定欄位是多餘的,只能設為
UNSPECIFIED。無論轉送規則通訊協定為何,後端服務都可以使用UNSPECIFIED通訊協定。流量分配。後端服務會根據設定的工作階段相依性、連線追蹤政策、負載平衡模式、後端容量和負載平衡地區政策分配流量。您也可以設定後端服務,啟用連線排除功能並調降後端容量。這些設定大部分都有預設值,可協助您快速上手。
健康檢查。後端服務必須有相關聯的健康狀態檢查。
後端。後端是實際接收負載平衡流量的端點。全域外部直通式網路負載平衡器可將流量分配給位於多個 Google Cloud 區域的執行個體群組或可用區 NEG:
如果選擇「執行個體群組」,可以使用可用區代管執行個體群組、可用區非代管執行個體群組,或結合使用這兩種執行個體群組類型。執行個體群組支援
RATE和UTILIZATION兩種負載平衡模式。如果選擇可用區 NEG,則必須使用
GCE_VM_IP可用區 NEG。NEG 僅支援RATE做為負載平衡模式。
VM 網路介面與轉送規則的相容性
由於全域外部直通式網路負載平衡器不會終止或轉譯流量,後端 VM 網路介面的堆疊類型必須與轉送規則 IP 位址版本相容。
| 轉送規則 | 後端 VM 網路介面的堆疊類型 |
|---|---|
| 僅限 IPv4 轉送規則 | 僅限 IPv4 (IPV4_ONLY) 或雙重堆疊 (IPV4_IPv6) |
| 僅限 IPv6 轉送規則 | 僅限 IPv6 (IPV6_ONLY) 或雙重堆疊 (IPV4_IPv6) |
| IPv4 和 IPv6 轉送規則 | 雙堆疊 (IPV4_IPv6) |
後端 VM 的網路介面與虛擬私有雲子網路的相容性
如上表所示,您可以設定全域外部直通式網路負載平衡器,讓後端包含僅限 IPv4 的介面、雙重堆疊介面和僅限 IPv6 的介面。下表摘要說明哪些後端 VM 的網路介面類型與各個虛擬私有雲子網路堆疊類型相容。
| 虛擬私有雲子網路的堆疊類型 | 後端 VM 網路介面的堆疊類型 |
|---|---|
IPV4_ONLY (單一堆疊)僅限 IPv4 子網路範圍 |
僅限 IPv4 (IPV4_ONLY) |
IPV4_IPV6 (雙重堆疊)IPv4 和 IPv6 子網路範圍 |
僅限 IPv4 (IPV4_ONLY)、雙重堆疊 (IPV4_IPv6) 和僅限 IPv6 (IPV6_ONLY) |
IPV6_ONLY (單一堆疊)僅限 IPv6 子網路範圍 |
僅限 IPv6 (IPV6_ONLY) |
請注意以下事項:
指派給 VM 網路介面的 IP 位址,會直接從基礎虛擬私有雲子網路分配。
如要使用 IPv6 連線,當 VM 網路介面指派給啟用 IPv6 的
/64子網路 Google Cloud 時,系統會從子網路/64外部 IPv6 位址範圍的前半部 (/65),為 VM 網路介面分配/96位址範圍。詳情請參閱「外部 IPv6 規格」。當 VM 網路介面的堆疊類型為雙重堆疊 (
IPV4_IPv6) 或僅限 IPv6 (IPV6_ONLY) 時,您需要選擇如何透過將 VPC 子網路上的--ipv6-access-type設定設為EXTERNAL或INTERNAL,存取 VM 網路介面的 IPv6 位址。如果子網路的--ipv6-access-type設為EXTERNAL,您也必須將 VM 網路介面上的--ipv6-network-tier設為PREMIUM。詳情請參閱「IPv6 子網路範圍」。
執行個體群組後端和網路介面
與執行個體群組相關聯的虛擬私有雲網路和子網路會隱含設定,詳情請參閱「執行個體群組後端和網路介面」。
如要將負載平衡流量分配至非nic0 負載平衡器目標介面,您無法使用執行個體群組後端。請改用具有 GCE_VM_IP 端點的區域 NEG。詳情請參閱「後端服務和虛擬私有雲網路」。
區域 NEG 後端和網路介面
建立區域網路端點群組時,系統會設定與該群組相關聯的虛擬私有雲網路和子網路,並提供 GCE_VM_IP 端點。如要進一步瞭解端點的相關資訊和規則,請參閱「GCE_VM_IP區域 NEG 後端和網路介面」。
後端服務和虛擬私有雲網路
後端服務不會與任何虛擬私有雲網路建立關聯,但如先前所述,每個後端執行個體群組或區域 NEG 都會與虛擬私有雲網路建立關聯。只要所有後端都位於同一個專案,且所有後端都屬於相同類型 (執行個體群組或區域網路端點群組),負載平衡器及其後端就能位於相同或不同的虛擬私有雲網路。
如要將封包分配至非 nic0 介面,必須符合下列兩項規定:
您必須使用區域 NEG (含
GCE_VM_IP端點),而非執行個體群組。非
nic0介面必須是負載平衡器目標介面。詳情請參閱「GCE_VM_IP可用區 NEG 後端和網路介面」。
健康狀態檢查
健康狀態檢查資訊可用於判斷新連線的適用後端,以及控管現有連線是否會持續連線至狀態不良的後端。負載平衡器會分別為每個轉送規則 IP 位址傳送健康狀態檢查探測。因此,系統會針對每個 IP 位址探查具有兩個 IP 位址的全域外部直通式網路負載平衡器轉送規則,使每個後端的探查頻率加倍。詳情請參閱「多重探查和頻率」。
健康狀態檢查類型、通訊協定和通訊埠
負載平衡器的後端服務必須參照全域健康狀態檢查,並使用任何支援的健康狀態檢查通訊協定和通訊埠。健康狀態檢查通訊協定和通訊埠詳細資料不必與轉送規則通訊協定和通訊埠資訊相符。
由於所有支援的健康狀態檢查通訊協定都依賴 TCP (不支援 UDP 健康狀態檢查),因此當您使用全域外部直通式網路負載平衡器,平衡其他通訊協定的連線和流量時,後端 VM 必須執行以 TCP 為基礎的伺服器,才能回應健康狀態檢查探測器。舉例來說,您可以搭配使用 HTTP 健康狀態檢查,並在每個後端 VM 上執行 HTTP 伺服器。在本例中,您的指令碼或軟體負責設定 HTTP 伺服器,只有在監聽負載平衡連線的軟體運作正常時,才會傳回狀態 200。
如要進一步瞭解支援的健康狀態檢查通訊協定和通訊埠,請參閱「健康狀態檢查類別、通訊協定和通訊埠」和「健康狀態檢查的運作方式」。
健康狀態檢查封包
如果是執行個體群組後端,健康狀態檢查探測器會將封包傳送至每個後端 VM 的網路介面。nic0
如果是GCE_VM_IP區域 NEG 後端,健康狀態檢查探測器會將封包傳送至NEG 的 VPC 子網路中的網路介面。健康狀態檢查封包具有下列特性:
- 相關健康狀態檢查的探測器 IP 範圍來源 IP 位址。
- 目的地 IP 位址符合轉送規則的任一 IP 位址,該規則會參照全域外部直通式網路負載平衡器後端服務。健康狀態檢查封包會傳送至這兩個 IP 位址。
- 與您在健康狀態檢查中指定的通訊埠編號相符的目的地通訊埠。
在後端 VM 上執行的應用程式必須繫結至相關 IP 位址和連接埠組合,並監聽這些組合。如要達成這個目標,請將應用程式設定為繫結至 VM 任何 IP 位址 (0.0.0.0 或 ::/0) 的相關通訊埠,並監聽這些通訊埠。詳情請參閱「探測封包的目的地」。
防火牆規則
全域外部直通式網路負載平衡器不是 Proxy,因此會將流量傳遞至後端 VM,且不會修改來源和目的地 IP 位址、通訊協定和通訊埠 (如果通訊協定攜帶通訊埠資訊)。因此,您必須建立允許輸入的防火牆規則或允許輸入的階層式防火牆政策,控管負載平衡器後端 VM 的存取權,具體來說,就是允許健康狀態檢查和您要進行負載平衡的流量。否則,隱含拒絕輸入防火牆規則會封鎖來自所有外部來源 IP 位址的輸入封包。
轉送規則和允許輸入流量的防火牆規則或階層式防火牆政策會以以下方式搭配運作:轉送規則會指定封包必須符合的目的地 IP 位址、通訊協定和通訊埠 (如有定義) 需求,才能轉送至後端 VM。防火牆會根據 Ingress 允許防火牆規則,決定是否將轉送的封包傳送至 VM,或捨棄封包。 Google Cloud 預設虛擬私有雲網路包含一組預先填入的輸入允許防火牆規則。
如要接受來自網際網路上任何 IP 位址的流量,請使用
0.0.0.0/0或::/0來源範圍建立允許輸入防火牆規則。如要只允許來自特定 IP 位址範圍的流量,請使用限制較嚴格的來源範圍。根據安全性最佳做法,輸入允許防火牆規則應只允許您需要的 IP 通訊協定和通訊埠。使用通訊協定設為
L3_DEFAULT的轉送規則時,限制通訊協定 (以及通訊埠,如有可能) 設定尤其重要。L3_DEFAULT轉送規則 轉送所有支援 IP 通訊協定的封包 (如果通訊協定和封包有通訊埠資訊,則轉送所有通訊埠)。全域外部直通式網路負載平衡器會使用 Google Cloud 健康狀態檢查。 因此,您一律必須允許來自健康狀態檢查 IP 位址範圍的流量。 您可以針對負載平衡器健康狀態檢查的通訊協定和通訊埠,設定這些輸入允許防火牆規則。
流量分配
如果是全域外部直通式網路負載平衡器,流量分配取決於不同屬性,例如工作階段相依性、連線追蹤政策、負載平衡模式和後端容量,以及負載平衡地區政策。這些功能會共同組成協調式工作流程,協助您最佳化負載平衡設定,確保效能穩定可靠,並有效運用資源。
Shared VPC 架構
針對全域外部直通網路負載平衡器,請注意下列與 Shared VPC 架構相關的要點:
除了 IP 位址資源外,與全域外部直通式網路負載平衡器相關聯的所有其他資源 (轉送規則、後端服務、健康狀態檢查和後端群組 (執行個體群組或 NEG)) 都必須位於同一個專案中,而這個專案可以是主機專案或服務專案。
如果負載平衡資源位於主專案中,IP 位址資源也必須位於主專案中。
如果負載平衡資源位於服務專案中,IP 位址資源可以位於同一個服務專案,也可以位於主專案中。
下表概述全域外部直通式網路負載平衡器的不同元件,在 Shared VPC 架構中的位置。
| 負載平衡資源的位置1 | IP 位址資源的必要位置 |
|---|---|
| 主專案 | 主專案 |
| 服務專案 | 服務專案或主專案 |
1:包括轉送規則、後端服務、健康狀態檢查和後端 (執行個體群組或 NEG)
限制
後端只能部署在下列 Google Cloud 區域:
- 北美:
us-west1、us-west4、us-east4、us-east5 - 歐洲:
europe-west2、europe-west3 - 亞洲:
asia-southeast1、asia-south1、asia-northeast1 - 南美洲:
southamerica-east1 - 非洲:
africa-south1 - 澳洲:
australia-southeast1
- 北美:
全域外部直通式網路負載平衡器只能在進階級中設定。
您無法使用 Google Cloud 控制台設定全域外部直通式網路負載平衡器。請改用 Google Cloud CLI 或 REST API。
您無法使用區域性代管執行個體群組後端。 您可以使用區域代管執行個體群組、區域非代管執行個體群組,以及具有
GCE_VM_IP端點的區域 NEG。現有的在後端服務中使用執行個體群組的限制和指南,也適用於全域外部直通式網路負載平衡器。在全域外部直通式網路負載平衡器和區域直通式網路負載平衡器 (區域外部直通式網路負載平衡器或內部直通式網路負載平衡器) 之間共用的執行個體群組,必須設定為在全域外部直通式網路負載平衡器上使用
RATE平衡模式。區域直通式網路負載平衡器一律使用CONNECTION平衡模式。只要設定的通訊協定和通訊埠沒有衝突,您就能在多個全域外部直通式網路負載平衡器轉送規則之間,共用同一個全域外部 IP 位址。不過,全域外部直通式網路負載平衡器和全域外部應用程式負載平衡器/全域外部 Proxy 網路負載平衡器無法共用同一個全域外部 IP 位址。
全域外部直通式網路負載平衡器僅支援 IPv4 位址的自帶 IP 位址 (BYOIP)。支援僅限於 v1 BYOIP API。新的 IPv4 範圍最多可能需要 4 週才能完成佈建,且沒有任何 API 可供您控管 BGP 播送狀態。詳情請參閱「自備 IP 設定」。
一個專案最多只能建立 10 項轉送規則, 且一個後端服務最多只能新增 25 個後端群組。 詳情請參閱「配額與限制」。
您無法在 GKE 中部署全域外部直通式網路負載平衡器。
您無法使用 Google Cloud Armor,為全域外部直通式網路負載平衡器提供進階網路 DDoS 防護。詳情請參閱「設定進階網路 DDoS 防護」。
負載平衡器的後端服務設定的負載平衡位置政策不支援
WEIGHTED_MAGLEV選項。如為全域外部直通式網路負載平衡器,則僅支援MAGLEV。不支援
PER_SESSION連線追蹤模式。 系統僅支援PER_CONNECTION連線追蹤模式。系統僅支援下列負載平衡模式:
RATE和UTILIZATION。速率並非以每秒要求數定義,而是以每秒傳入封包數定義。執行個體群組同時支援RATE和UTILIZATION,但 NEG 僅支援RATE。系統不支援轉送規則引導 (根據來源 IP 引導流量)。
附加至後端服務的所有後端都必須是相同類型。 後端服務不得同時包含執行個體群組和區域性 NEG。
監控指標無法使用父項全域轉送規則查詢或篩選,必須使用 Google Cloud產生的子項轉送規則查詢。
定價
如需定價資訊,請參閱「網路定價:Cloud Load Balancing」。
後續步驟
- 設定具備 VM 執行個體群組後端的全域外部直通式網路負載平衡器
- 設定具備可用區 NEG 後端的全域外部直通式網路負載平衡器
- 直通式網路負載平衡器的平衡模式
- 全域外部直通式網路負載平衡器的目標容量規格
- Cloud Load Balancing API 和 gcloud CLI 參考資料