Cloud Load Balancing 支援將流量 Proxy 至外部後端 Trusted Cloud by S3NS。如要為負載平衡器定義外部後端,請使用名為網際網路網路端點群組 (NEG) 的資源。
如要從外部後端提供內容,但希望 Trusted Cloud 負載平衡器做為前端,即可使用這類部署作業。這可讓您執行下列操作:
- 使用 Google Edge 基礎架構終止使用者連線。
- 將連線導向外部後端。
- 透過 Google 私人骨幹將流量傳送至公開端點,提升可靠性並縮短用戶端與伺服器之間的延遲時間。
以下各節說明如何搭配 Cloud Load Balancing 使用外部後端。如要搭配 Cloud Service Mesh 使用外部後端,請參閱「搭配網際網路網路端點群組使用 Cloud Service Mesh」。
術語
下列字詞有時會互通使用,因為意義相同或相似:
- 外部後端:位於 Trusted Cloud by S3NS 外部,可透過網際網路連線的後端。網際網路 NEG 中的端點。
- 網際網路網路端點群組 (NEG):用於指定外部後端的 Trusted Cloud by S3NS API 資源。
- 外部端點:與外部後端相同。
除非是指網際網路 NEG API 資源,否則本文件一律使用「外部後端」一詞。
負載平衡器元件
本節說明負載平衡架構,以及設定具有外部後端的負載平衡器時所需的資源。負載平衡器只需要針對後端服務進行特別設定。前端設定與其他負載平衡器相同。
下圖顯示設定具備外部後端的負載平衡器時所需的 Trusted Cloud 資源。
區域型外部
這張圖顯示設定區域性外部應用程式負載平衡器 (含外部後端) 時所需的 Trusted Cloud 資源。
下圖顯示設定區域性外部 Proxy 網路負載平衡器 (含外部後端) 時所需的 Trusted Cloud 資源。
區域型內部
下圖顯示設定區域性內部應用程式負載平衡器 (含外部後端) 時所需的資源。 Trusted Cloud
下圖顯示設定區域性內部 Proxy 網路負載平衡器 (含外部後端) 時所需的 Trusted Cloud 資源。
您只能在進階網路服務級別使用網際網路 NEG。
前端設定
如要建立具有網際網路 NEG 後端的負載平衡器,不需要進行任何特殊前端設定。轉送規則會依據 IP 位址、通訊埠和通訊協定,將流量轉送至目標 Proxy。目標 Proxy 接著會終止來自用戶端的連線。此外,Envoy 型負載平衡器必須具備僅限 Proxy 的子網路。
應用程式負載平衡器也會使用網址對應,根據網址將要求轉送至適當的後端服務。
如要進一步瞭解各個元件,請參閱對應負載平衡器的架構章節:
網際網路 NEG
網際網路 NEG 是一種資源,用於定義負載平衡器的外部後端。網際網路 NEG 分為兩種類型:全域網際網路 NEG 和區域網際網路 NEG。兩者在範圍 (全球與地區) 和行為方面有所不同。全域網際網路 NEG 參照的外部後端必須只能透過網際網路連線,無法透過 Cloud VPN 或 Cloud Interconnect 連線。如果外部後端參照 Google API 或服務,則服務必須可透過 TCP 連接埠 80
或 443
,使用 HTTP
、HTTPS
或 HTTP/2
通訊協定連線。
設定 NEG 參照的外部端點有兩種方式:INTERNET_FQDN_PORT
或 INTERNET_IP_PORT
。如果選擇 INTERNET_IP_PORT
格式,只能使用可透過公開網際網路連線的 IP 位址;如果選擇 INTERNET_FQDN_PORT
格式,FQDN 可解析為可透過公開網際網路連線的 IP 位址,或解析為私人 IP 位址,視端點範圍 (區域或全域) 而定。
區域性網際網路 NEG 採用代管 Envoy Proxy。每個 NEG 可以有多個端點,後端服務也可以包含多個網際網路 NEG。
對於輸出流量,您可以設定 Cloud NAT 閘道來設定來源 IP 位址。或者,您也可以使用虛擬私有雲網路中學到的路徑轉送流量。雖然這個路由方法不需要 Cloud NAT,但支援這項服務。
下表說明不同負載平衡器對區域網際網路 NEG 的支援情形。
負載平衡器 | 端點類型 | 端點定義 | 範圍 | 健康狀態檢查 |
---|---|---|---|---|
|
|
可公開或私下解析的完整網域名稱,以及選用的通訊埠。例如: 網域名稱必須可由 Cloud DNS 解析。 每個 NEG 最多可有 256 個端點。 |
區域 | Envoy 分散式健康狀態檢查 |
|
只能是可公開路由的 IP 位址和選用的通訊埠。例如 IP 位址不得為 RFC 1918 位址。 每個 NEG 最多可有 256 個端點。 |
* 使用區域性網際網路 NEG 時,您必須指定通訊埠。您可以在建立 NEG 時指定預設通訊埠,也可以在每次將端點新增至 NEG 時指定通訊埠,或同時執行這兩項操作。如果在新增端點時未指定通訊埠,系統會使用 NEG 的預設通訊埠。
區域 INTERNET_FQDN_PORT
端點的 DNS 解析
如果網域可透過網際網路解析,則不需要其他設定即可設定 DNS。不過,如果您要解析私有 FQDN,則需要設定 Cloud DNS,以利 DNS 解析。名稱必須託管在 Cloud DNS 上,或是透過從 Cloud DNS 轉送至內部部署 DNS 或 DNS 對等互連的方式解析 (如果參照另一個虛擬私有雲網路中的私人 DNS 區域)。
首先,請建立 Cloud DNS 區域,代管專案中的 DNS 記錄。然後將 DNS 記錄新增至該區域。如需具體設定步驟,請參閱 Cloud DNS 說明文件。如要瞭解 Cloud DNS 解析順序的詳細資訊,請參閱「名稱解析順序」。
如果您使用共用虛擬私有雲,請注意特定的網路需求。您也可以使用 Cloud DNS 的其他功能 (例如轉送區域),從內部部署 DNS 伺服器擷取記錄。
區域 INTERNET_FQDN_PORT
端點的 IP 位址解析
區域性網際網路 NEG 支援使用 Cloud DNS 解析網域名稱。
如果 DNS 伺服器傳回多個 IP 位址,Envoy 會根據設定的負載平衡演算法 (循環配置、最少要求等),在傳回的 IP 位址之間平衡流量。系統會根據 DNS TTL 定期更新端點清單。您可以設定重試政策,強制 Envoy 在連線失敗時嘗試連線至其他 IP 位址。
後端服務
後端服務會將設定資訊提供給負載平衡器,負載平衡器會使用後端服務中的資訊,將傳入流量導向至一或多個連接的後端。
如要設定具有外部後端的負載平衡器,請使用網際網路 NEG 後端設定後端服務。將網際網路 NEG 新增至後端服務時,請注意下列事項 (視 NEG 的範圍而定):
後端服務也不能使用其他後端類型 (例如區域 NEG 或執行個體群組) 做為後端。
每個後端服務的 NEG 數量
- 區域性 NEG。您最多可以將 50 個網際網路 NEG 新增至同一個後端服務。
每個 NEG 的端點數量
- 區域性 NEG。每個 NEG 最多可新增 256 個端點,並加入同一個後端服務。
區域性 NEG 不支援負載平衡模式,例如速率、連線或使用率。所有附加至後端服務的 NEG 端點都會匯集到單一群組。系統會使用 Envoy 負載平衡演算法,在這個端點集區之間平衡流量。如要瞭解支援的負載平衡政策演算法,請參閱
localityLbPolicy
地區後端服務 API 說明文件。安全狀態檢查
- 區域性 NEG。負載平衡器會使用分散式 Envoy 健康狀態檢查。
後端服務的負載平衡架構必須與您部署的負載平衡器所需架構相符。如需完整清單,請參閱後端服務。
後端服務通訊協定必須是
HTTP
、HTTPS
或HTTP2
。設定含有網際網路 NEG 的後端服務時,我們強烈建議使用 HTTPS 或 HTTP/2 做為通訊協定,這樣一來,負載平衡器與後端在公用網際網路傳輸資料時,就會經過加密和驗證。
此外,使用 HTTPS 或 HTTP/2 做為後端通訊協定時,請務必使用
INTERNET_FQDN_PORT
端點建立外部後端。這有兩項優點:這項功能可確保負載平衡器驗證外部後端提供的 SSL 伺服器憑證,並確認下列資訊正確無誤:
- 憑證由知名憑證授權單位 (CA) 簽署。
- 憑證未過期。
- 憑證簽章有效。
- 設定的 FQDN 符合憑證中的其中一個主體別名 (SAN)。
如果您使用
INTERNET_IP_PORT
端點建立外部後端,系統不會執行 SSL 伺服器憑證驗證。SSL 伺服器名稱指示 (SNI) 擴充功能僅支援
INTERNET_FQDN_PORT
端點。在負載平衡器與外部端點之間的 SSL 交握期間,設定的 FQDN 會在用戶端問候訊息中傳送 SNI。使用INTERNET_IP_PORT
端點時,系統不會傳送 SNI,因為 SNI 酬載的HostName
欄位不允許使用 IP 位址常值。
健康狀態檢查
健康狀態檢查設定會因負載平衡器類型而異:
區域性外部應用程式負載平衡器、區域性內部應用程式負載平衡器、區域性外部 Proxy 網路負載平衡器和區域性內部 Proxy 網路負載平衡器。健康檢查為選用功能。這類負載平衡器的健康狀態檢查探測會從僅限 Proxy 的子網路發出,然後 (透過 Cloud NAT) 轉譯為預先保留的 IP 位址或自動分配的 NAT IP 位址。詳情請參閱「區域性 NEG:使用 Cloud NAT 閘道」。
建立分散式 Envoy 健康狀態檢查時,請使用與集中式健康狀態檢查相同Trusted Cloud 的控制台、gcloud CLI 和 API 程序。無需其他設定。
注意事項:
- 不支援 gRPC 健康狀態檢查。
- 不支援啟用 Proxy 通訊協定第 1 版的健康狀態檢查。
由於 Envoy 資料平面會處理健康狀態檢查,因此您無法使用Trusted Cloud 主控台、API 或 gcloud CLI 檢查這些外部端點的健康狀態。如果是使用 Envoy 型負載平衡器的混合式 NEG,控制台會將健康狀態檢查狀態顯示為 Trusted Cloud
N/A
。這是可預期的情況。指派給虛擬私有雲網路中該地區僅限 Proxy 子網路的每個 Envoy Proxy,都會獨立啟動健康狀態檢查。因此,健康狀態檢查可能會導致網路流量增加。增加的費用取決於指派給區域中虛擬私有雲網路的 Envoy Proxy 數量、這些 Proxy 收到的流量,以及每個 Envoy Proxy 需要進行健康檢查的端點數量。在最糟的情況下,健康狀態檢查造成的網路流量會以二次方
(O(n^2))
的速率增加。分散式 Envoy 健康狀態檢查的記錄不會包含詳細的健康狀態。如要瞭解記錄內容,請參閱「健康狀態檢查記錄」。如要進一步排解從 Envoy Proxy 到 NEG 端點的連線問題,也請檢查相關的負載平衡器記錄。
啟用外部後端以接收要求
設定外部後端,允許來自 Trusted Cloud的流量。
區域性 NEG:使用 Cloud NAT 閘道
如果您使用區域性網際網路 NEG,請先設定 Cloud NAT 閘道,從 Trusted Cloud 流量的來源位置分配一組 IP 位址範圍。
閘道端點應為 ENDPOINT_TYPE_MANAGED_PROXY_LB
類型。
您可以將 Cloud NAT 閘道設為根據需求自動分配外部 IP 位址,或是使用手動預先保留的一組外部 IP 位址。
自動分配的 IP 位址
如果外部後端環境不需要您將可傳送流量至外部後端的特定 Trusted CloudIP 位址加入許可清單,請使用自動分配的 IP 位址。
手動指派的 IP 位址
只有在外部後端環境要求您將特定 Trusted Cloud IP 位址加入許可清單時,才使用手動分配的 IP 位址。由於指派給 Proxy 子網路的每個 Envoy 都會耗用整個 IP 位址,請確保保留的 IP 位址集區夠大,可容納所有 Envoy。
如果大規模發生連線問題,請檢查是否已達到 Cloud NAT 限制。根據預設,每個閘道最多只能手動指派 50 個 NAT IP 位址。
區域性網際網路 NEG 支援動態通訊埠分配。Proxy 可以共用 IP 位址,充分利用這些位址。
這項 Cloud NAT 設定會套用至整個僅限 Proxy 的子網路。 該區域中所有區域 Envoy 型負載平衡器的網際網路流量,都會共用同一個 NAT 閘道。
使用者流量和健康狀態檢查流量都會產生 Cloud NAT 用量費用。如要進一步瞭解區域性網際網路 NEG 定價方式,請參閱區域性網際網路 NEG 定價。
在僅限 Proxy 的子網路上設定 NAT 閘道時,須遵守下列限制:
- 只會執行一對一 NAT 轉換。系統不支援分享 IP 位址。
- 不支援記錄和監控功能。也就是說,系統不支援
--enable-logging
和--log-filter
旗標。
驗證對外部後端的要求
本節內容僅適用於應用程式負載平衡器。
如要驗證傳送至外部後端的要求,可以採取下列其中一種做法:
使用自訂要求標頭設定自訂標頭,指出要求來自 Trusted Cloud 負載平衡器。 舉例來說,您可以使用 16 個以上的加密隨機位元組做為共用金鑰。
實作自訂標頭轉換作業時,請視使用的負載平衡器類型而定:
區域性外部應用程式負載平衡器和區域性內部應用程式負載平衡器。自訂標頭轉換只能在網址對應中設定。
對於這些以 Envoy 為基礎的負載平衡器,
Host
和authority
是 Trusted Cloud保留的特殊關鍵字。您無法修改這些負載平衡器的標頭。建議您改為建立其他自訂標頭 (例如MyHost
),以免干擾保留的標頭名稱。
啟用 IAP,並確認要求標頭中的已簽署 JWT 是由 Google 簽署,且
aud
(目標對象) 憑證附加資訊包含定義負載平衡器的專案編號。
記錄
系統會將 Proxy 要求傳送至外部後端,並以記錄其他後端要求的方式,將這些要求記錄至 Cloud Logging。
如要瞭解詳情,請參考下列資源:
限制
- 如要瞭解將網際網路 NEG 設定為後端時的相關限制,請參閱後端服務一節。
- 如果修改負載平衡器,將後端從網際網路 NEG 變更為任何其他後端類型,或將後端從任何其他後端類型變更為網際網路 NEG,應用程式會暫時停機約 30 到 90 秒。
- 如要瞭解在僅限 Proxy 的子網路上設定 NAT 閘道時的限制,請參閱「Cloud NAT 閘道」一節。
配額與限制
如要瞭解配額和限制,請參閱 NEG 後端配額表和 每個 NEG 的端點配額表。
定價
輸出至外部網際網路 NEG 端點的流量,會按照進階級網路的網際網路輸出費率計費。來源是根據用戶端位置,目的地是根據公開端點位置。
如果您設定 Cloud NAT 閘道,將區域 Envoy 型負載平衡器的僅限 Proxy 子網路對應至該閘道,就會產生 Cloud NAT 費用。分配給負載平衡器的 Cloud NAT 閘道,每小時產生的費用等同於具備 32 個 VM 執行個體以上的網路。詳情請參閱「Cloud NAT 定價」一文。
詳情請參閱 Cloud Load Balancing 定價。