內部直通式網路負載平衡器簡介 (original) (raw)

內部直通式網路負載平衡器是以 Andromeda 網路虛擬化堆疊為基礎建構的區域負載平衡器。

內部直通式網路負載平衡器會在虛擬私有雲 (VPC) 網路中,將流量分配至相同區域的內部虛擬機器 (VM) 執行個體。可讓您透過內部 IP 位址執行及調度服務資源。請注意,這類 IP 位址只能由相同虛擬私有雲網路中的系統,或連線至虛擬私有雲網路的系統存取。

在以下情況中使用內部直通式網路負載平衡器:

內部直通式網路負載平衡器可解決許多應用實例問題。如需幾個高階範例,請參閱直通式網路負載平衡器總覽

內部直通式網路負載平衡器的運作方式

內部直通式網路負載平衡器具有前端 (轉送規則) 和後端 (後端服務)。您可以在後端服務上使用執行個體群組或GCE_VM_IP區域 NEG 做為後端。這個範例顯示執行個體群組後端。

內部直通式網路負載平衡器整體架構範例。

高層級內部直通式網路負載平衡器範例 (按一下可放大)。

與 Proxy 負載平衡器不同,內部直通式網路負載平衡器不會終止來自用戶端的連線,然後開啟連至後端的新連線。內部直通式網路負載平衡器會直接將連線從用戶端轉送至符合資格的後端,用戶端與後端之間沒有 Proxy。系統會使用直接伺服器傳回功能,傳送每個所選後端的回應。詳情請參閱「內部直通網路負載平衡器的流量分配」和「要求和回傳封包的 IP 位址」。

負載平衡器會使用健康狀態檢查探測,監控後端健康狀態。詳情請參閱「健康狀態檢查」一節。

Google Cloud Linux 訪客環境Windows 訪客環境或同等程序會為每個後端 VM 設定負載平衡器的 IP 位址。如果是從 Google Cloud 映像檔建立的 VM,訪客代理程式 (舊稱 Windows 訪客環境或 Linux 訪客環境) 會安裝負載平衡器 IP 位址的本機路徑。以 Container-Optimized OS 為基礎的 Google Kubernetes Engine 執行個體會改用 iptables 來實作這項功能。

Google Cloud 虛擬網路會視情況管理流量傳輸和擴充作業。

通訊協定、機制和範圍

每個內部直通式網路負載平衡器都支援下列項目:

內部直通式網路負載平衡器不支援下列項目:

用戶端存取權

根據預設,負載平衡器僅支援與負載平衡器位於相同區域的用戶端。用戶端可與負載平衡器位於相同的網路,或是位於透過 VPC 網路對等互連連線的 VPC 網路。您可以啟用全域存取權,允許任何區域的用戶端存取內部直通式網路負載平衡器。

已啟用全域存取權的內部直通式網路負載平衡器。

具有全域存取權的內部直通式網路負載平衡器 (按一下可放大)。

下表摘要列出用戶端存取權。

已停用全域存取權 已啟用全域存取權
用戶端必須與負載平衡器位於相同區域。此外,這些執行個體必須與負載平衡器位於同一個虛擬私有雲網路,或是透過虛擬私有雲網路對等互連,與負載平衡器的虛擬私有雲網路連線。 用戶端可位於任何區域。但仍須與負載平衡器位於同一個 VPC 網路,或位於透過 VPC 網路對等互連連線至負載平衡器 VPC 網路的 VPC 網路。
地端用戶端可透過 Cloud VPN 通道或 VLAN 連結存取負載平衡器。這些通道或附件必須與負載平衡器位於相同區域。 地端用戶端可透過 Cloud VPN 通道或 VLAN 連結存取負載平衡器。這些通道或附件可以位於任何區域。

要求和傳回封包的 IP 位址

後端 VM 從用戶端收到達到負載平衡的封包時,封包的來源和目的地如下:

由於負載平衡器是直通式負載平衡器 (而非 Proxy),封包抵達時會帶有負載平衡器轉送規則的目的地 IP 位址。設定在後端 VM 上執行的軟體,以執行下列操作:

回傳封包會從負載平衡器的後端 VM 直接傳送至用戶端。回傳封包的來源和目的地 IP 位址取決於通訊協定:

下表摘要列出回應封包的來源和目的地:

流量類型 來源 目的地
TCP 負載平衡器轉送規則的 IP 位址 要求封包的來源
UDP 在大多數情況下,負載平衡器轉送規則的 IP 位址 1 要求封包的來源

1 您可以將回應封包的來源設為 VM NIC 的主要內部 IPv4 位址或別名 IP 位址範圍。如果 VM 啟用 IP 轉送,也可以使用任意 IP 位址來源。不使用轉送規則的 IP 位址做為來源是進階情境,因為用戶端會收到來自內部 IP 位址的回應封包,而該 IP 位址與用戶端傳送要求封包的 IP 位址不符。

架構

具有多個後端的內部直通式網路負載平衡器,會將連線分配到所有後端。如要瞭解分配方法和其設定選項,請參閱流量分配

您可以選擇使用執行個體群組或可用區 NEG,但不能同時使用兩者,做為內部直通式網路負載平衡器的後端:

高可用性說明如何設計不依賴單一區域的內部負載平衡器。

做為內部直通式網路負載平衡器的後端 VM 的執行個體,必須執行適當的 Linux 或 Windows 訪客環境,或其他提供等效功能的處理程序。這個訪客環境必須能夠與中繼資料伺服器 (metadata.google.internal、169.254.169.254) 聯絡,並讀取執行個體中繼資料,以產生本機路徑,接收傳送至負載平衡器內部 IP 位址的流量。

這個架構圖說明瞭位於兩個單獨執行個體組中的 VM 之間的流量分配。從用戶端執行個體傳送至負載平衡器 IP 位址 (10.10.10.9) 的流量,會分配到任一執行個體群組的後端 VM。從任何服務後端 VM 傳送的回應,都會直接傳遞至用戶端 VM。

您可以將內部直通式網路負載平衡器與自訂模式或自動模式虛擬私有雲網路搭配使用,也可以使用現有的舊版網路建立內部直通式網路負載平衡器。

內部直通式網路負載平衡器不支援下列項目:

內部 IP 位址

內部直通式網路負載平衡器支援僅限 IPv4、雙重堆疊和僅限 IPv6 的子網路。如要進一步瞭解各種類型,請參閱「子網路類型」。

內部直通式網路負載平衡器至少需要一項轉送規則。轉送規則會參照內部 IP 位址:

防火牆設定

內部直通網路負載平衡器需要下列階層式防火牆政策和 VPC 防火牆規則設定:

詳情請參閱設定防火牆規則

轉送規則

轉送規則會指定負載平衡器接收流量的通訊協定和通訊埠。由於內部直通式網路負載平衡器不是 Proxy,因此會透過相同的通訊協定和通訊埠將流量傳送至後端。

內部直通式網路負載平衡器至少需要一個內部轉送規則。您可以為同一個負載平衡器定義多個轉送規則

如要讓負載平衡器同時處理 IPv4 和 IPv6 流量,請建立兩項轉送規則:一項規則用於 IPv4 流量,指向 IPv4 (或雙重堆疊) 後端;另一項規則用於 IPv6 流量,僅指向雙重堆疊後端。IPv4 和 IPv6 轉送規則可以參照相同的後端服務,但後端服務必須參照雙重堆疊後端。

轉送規則必須參照與負載平衡器後端元件位於相同虛擬私有雲網路和區域的特定子網路。這項規定有下列影響:

轉送規則通訊協定

內部直通式網路負載平衡器支援下列 IPv4 通訊協定選項,適用於各項轉送規則:TCPUDPL3_DEFAULT

內部直通式網路負載平衡器支援下列 IPv6 通訊協定選項,適用於各項轉送規則:TCPUDP

L3_DEFAULT 選項可讓您對 TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE 通訊協定進行負載平衡。

除了支援 TCP 和 UDP 以外的通訊協定,L3_DEFAULT 選項還可讓單一轉送規則同時轉送多個通訊協定的流量。舉例來說,除了發出 HTTP 要求,您也可以對負載平衡器 IP 位址執行連線偵測 (ping)。

使用 TCPUDP 通訊協定的轉送規則可以參照後端服務,方法是使用與轉送規則相同的通訊協定,或是使用 UNSPECIFIED 通訊協定的後端服務。

如果您使用 L3_DEFAULT 通訊協定,必須設定轉送規則,接受所有通訊埠的流量。如要設定所有連接埠,請使用 Google Cloud CLI 設定 --ports=ALL,或使用 API 將 allPorts 設為 True

下表摘要說明如何針對不同通訊協定使用這些設定:

要進行負載平衡的流量 轉送規則通訊協定 後端服務通訊協定
TCP (IPv4 或 IPv6) TCP TCP or UNSPECIFIED
UDP (IPv4 或 IPv6) UDP UDP or UNSPECIFIED
TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE L3_DEFAULT UNSPECIFIED

轉送規則和全域存取權

即使啟用全域存取權,內部直通式網路負載平衡器的轉送規則仍屬於區域性。啟用全域存取權後,區域內部轉送規則的 allowGlobalAccess 旗標會設為 true

轉送規則和通訊埠規格

建立內部轉送規則時,您必須選擇下列其中一種通訊埠規格:

支援所有 TCP 通訊埠或所有 UDP 通訊埠的內部轉送規則,可讓後端 VM 執行多個應用程式,每個應用程式各使用一個通訊埠。系統會將傳送至特定通訊埠的流量傳遞至對應的應用程式,且所有應用程式都使用相同的 IP 位址。

如要轉送超過五個特定通訊埠的流量,請將防火牆規則與轉送規則合併。建立轉送規則時,請指定所有連接埠,然後建立輸入 allow 防火牆規則,只允許流量傳輸至所需連接埠。將防火牆規則套用至後端 VM。

轉送規則建立後即無法修改,如要變更內部轉送規則指定的通訊埠或內部 IP 位址,則必須先刪除該項規則並重新建立。

單一後端服務的多個轉送規則

您可以設定多個內部轉送規則,全部參照同一個內部後端服務。內部直通式網路負載平衡器至少需要一個內部轉送規則。

為同一個後端服務設定多個轉送規則,可讓您執行下列操作:

如要進一步瞭解涉及兩個以上共用相同內部 IP 位址的內部轉送規則情境,請參閱「包含共用 IP 位址的多個轉送規則」。

使用多個內部轉送規則時,請務必設定在後端 VM 上執行的軟體,將軟體繫結至所有轉送規則 IP 位址,或任何位址 (IPv4 為 0.0.0.0/0,IPv6 為 ::/0)。透過負載平衡器傳遞的封包目的地 IP 位址,是與對應內部轉送規則相關聯的內部 IP 位址。詳情請參閱「TCP 和 UDP 要求與傳回封包」。

後端服務

每個內部直通式網路負載平衡器都有一個區域性內部後端服務,可定義後端參數和行為。後端服務的名稱即為 Google Cloud 控制台中顯示的內部直通式網路負載平衡器名稱。

每個後端服務都會定義下列後端參數:

每個後端服務都在單一區域運作,並為單一虛擬私有雲網路中的後端 VM 分配流量:

執行個體群組後端和網路介面

在指定的 (代管或非代管) 執行個體群組中,每個成員 VM 的 nic0 網路介面一律位於同一個 VPC 網路:

成員 VM 可以有額外網路介面 (vNIC 或動態網路介面)。每個非 nic0 介面可位於執行個體群組的虛擬私有雲網路 (nic0 介面使用的網路),或位於不同的虛擬私有雲網路。

如要將負載平衡流量分配到非 nic0 網路介面,建議您使用可用區 NEG,並搭配 GCE_VM_IP 端點。不過,您可以將後端服務的虛擬私有雲網路設為與虛擬機器執行個體群組中非 nic0 網路介面的虛擬私有雲網路相符。詳情請參閱「後端服務網路規格」和「後端服務網路規則」。

區域性 NEG 後端和網路介面

建立含有 GCE_VM_IP 端點的新區域 NEG 時,必須先將 NEG 與虛擬私有雲網路的子網路建立關聯,才能將任何端點新增至 NEG。建立 NEG 後,子網路和 VPC 網路都無法變更。

在指定的 NEG 中,每個 GCE_VM_IP 端點實際上都代表網路介面。網路介面必須位於與 NEG 相關聯的子網路中。從 Compute Engine 執行個體的角度來看,網路介面可以使用任何ID。從 NEG 端點的角度來看,系統會使用主要內部 IPv4 位址識別網路介面。詳情請參閱「具有 GCE_VM_IP 端點的 NEG」。

GCE_VM_IP 端點新增至 NEG 的方式有兩種:

後端服務網路規格

建立後端服務時,可以使用 --network 旗標,明確將虛擬私有雲網路與後端服務建立關聯。後端服務網路規則會立即生效。

如果您在建立後端服務時省略 --network 旗標,Google Cloud 會使用下列其中一個符合資格的事件,隱含地設定後端服務的相關聯 VPC 網路。設定完成後,後端服務的相關聯 VPC 網路就無法變更:

符合資格的事件設定後端服務的虛擬私有雲網路後,您新增的任何其他轉送規則或後端群組都必須遵守後端服務網路規則

後端服務網路規則

後端服務與特定 VPC 網路建立關聯後,適用下列規則:

雙重堆疊後端 (IPv4 和 IPv6)

如要讓負載平衡器使用雙重堆疊後端,同時處理 IPv4 和 IPv6 流量,請注意下列規定:

僅限 IPv6 的後端

如要讓負載平衡器使用僅限 IPv6 的後端,請注意下列規定:

請注意,您可以在雙重堆疊和僅限 IPv6 的子網路中建立僅限 IPv6 的 VM,但無法在僅限 IPv6 的子網路中建立雙重堆疊 VM。

後端子集

後端子集是選用功能,可限制流量分配的後端數量,進而提升效能。

如果單一負載平衡器需要支援超過 250 個後端 VM,建議啟用子集。詳情請參閱內部直通式網路負載平衡器的後端子設定

健康狀態檢查

健康狀態檢查資訊可用於判斷哪些後端可接收新的連線,您也可以控管現有連線是否會繼續連線至健康狀態不良的後端。如要進一步瞭解符合資格的後端,請參閱「內部直通式網路負載平衡器的流量分配」。

健康狀態檢查類型、通訊協定和通訊埠

負載平衡器的後端服務必須參照全域或區域健康狀態檢查,並使用任何支援的健康狀態檢查通訊協定和通訊埠。健康狀態檢查通訊協定和通訊埠詳細資料不必與負載平衡器後端服務通訊協定和轉送規則 IP 通訊埠資訊相符。

由於所有支援的健康狀態檢查通訊協定都依賴 TCP,因此當您使用內部直通網路負載平衡器,平衡其他通訊協定的連線和流量時,後端 VM 必須執行 TCP 型伺服器,才能回應健康狀態檢查探測作業。舉例來說,您可以搭配使用 HTTP 健康狀態檢查,並在每個後端 VM 上執行 HTTP 伺服器。在本範例中,您的指令碼或軟體負責設定 HTTP 伺服器,只有在監聽負載平衡連線的軟體正常運作時,才會傳回狀態 200

如要進一步瞭解支援的健康狀態檢查通訊協定和通訊埠,請參閱「健康狀態檢查類別、通訊協定和通訊埠」和「健康狀態檢查運作方式」。

健康狀態檢查封包

健康狀態檢查探測器會將封包傳送至後端 VM 網路介面,該介面位於與後端服務網路規格相符的虛擬私有雲網路中。健康狀態檢查封包具有下列特性:

後端 VM 上執行的軟體必須繫結至相關 IP 位址和通訊埠組合,並監聽這些組合。最簡單的方法是將軟體設定為繫結至任何 VM IP 位址的相關連接埠 (0.0.0.0),並監聽這些連接埠。詳情請參閱「探查封包目的地」。

高可用性架構

內部直通式網路負載平衡器在設計上具備高可用性。由於負載平衡器機制不會依賴單一裝置或 VM 執行個體,因此沒有特殊的步驟可以使負載平衡器高度可用。

如要將後端 VM 執行個體部署到多個區域,請參考下列部署建議:

下表彙整了搭配共用虛擬私有雲網路使用的內部直通式網路負載平衡器元件需求。如需範例,請參閱「佈建共用虛擬私有雲」頁面中的建立內部直通網路負載平衡器

IP 位址 轉送規則 後端元件
必須在後端 VM 所屬的專案中定義 內部 IP 位址。如要在共用虛擬私有雲網路中使用負載平衡器, Google Cloud 內部 IP 位址_必須_在後端 VM 所在的服務專案中定義,_且_必須參照主專案中所需共用虛擬私有雲網路的子網路。位址本身來自參照子網路的主要 IP 範圍。如果您在服務專案中建立內部 IP 位址,且 IP 位址子網路位於服務專案的 VPC 網路中,則內部直通式網路負載平衡器會位於服務專案中。內部直通網路負載平衡器並非任何共用虛擬私有雲主專案的本機。 內部轉送規則必須在後端 VM 所屬專案中定義。如要在 Shared VPC 網路中使用負載平衡器,必須在後端 VM 所在的服務專案中定義內部轉送規則,_且_該規則必須參照相關聯內部 IP 位址參照的相同子網路 (位於 Shared VPC 網路中)。如果您在服務專案中建立內部轉送規則,且轉送規則的子網路位於服務專案的虛擬私有雲網路中,則內部直通式網路負載平衡器會位於服務專案中。內部直通網路負載平衡器並非任何共用虛擬私有雲主專案的本機。 在共用虛擬私有雲情境中,後端 VM 位於服務專案中。必須在該服務專案中定義 地區內部後端服務和健康狀態檢查。

流量分配

內部直通式網路負載平衡器支援各種流量分配自訂選項,包括工作階段相依性、連線追蹤和容錯移轉。如要進一步瞭解內部直通式網路負載平衡器如何分配流量,以及這些選項如何相互影響,請參閱「內部直通式網路負載平衡器的流量分配」。

配額與限制

如要進一步瞭解配額和限制,請參閱負載平衡資源配額

限制

後續步驟