後端服務總覽

後端服務會定義 Cloud Load Balancing 分配流量的方式。 後端服務設定包含一組值,例如用於連線至後端的通訊協定、各種分配和工作階段設定、健康狀態檢查和逾時。這些設定可精細控管負載平衡器的行為。為方便您開始使用,大部分設定都有預設值,可快速完成設定。後端服務的範圍 區域。

負載平衡器、Envoy Proxy 和無 Proxy gRPC 用戶端會使用後端服務資源中的設定資訊,執行下列操作:

  • 將流量導向正確的「後端」,也就是執行個體群組或網路端點群組 (NEG)。
  • 根據「平衡模式」分配流量,這是各後端的設定。
  • 判斷哪個健康狀態檢查正在監控後端的健康狀態。
  • 指定工作階段相依性

建立後端服務或將後端新增至後端服務時,您可以設定這些值。

下表彙整使用後端服務的負載平衡器。您使用的產品也會決定後端服務的數量上限、後端服務的範圍、支援的後端類型,以及後端服務的負載平衡機制。負載平衡架構是 Google 用來分類轉送規則和後端服務的 ID。每個負載平衡產品都會為轉送規則和後端服務使用一個負載平衡架構。部分架構會在產品間共用。

表格:後端服務和支援的後端類型
產品 後端服務數量上限 後端服務範圍 支援的後端類型 負載平衡架構
區域性外部應用程式負載平衡器 多個 區域 每個後端服務都支援下列其中一種後端組合:
  • 所有執行個體群組後端:一或多個代管、非代管,或代管與非代管執行個體群組後端的組合 1
  • 所有區域性 NEG:一或多個 GCE_VM_IP_PORT 類型區域性 NEG 1
  • 所有混合式連線 NEG:一或多個 NON_GCP_PRIVATE_IP_PORT 類型 NEG
  • 可用區和混合式 NEG 的組合:GCE_VM_IP_PORTNON_GCP_PRIVATE_IP_PORT 類型 NEG 2
  • 單一 Private Service Connect NEG
  • 外部後端的所有區域性網際網路 NEG
  • 所有已發布的服務後端 (預覽)
EXTERNAL_MANAGED
區域性內部應用程式負載平衡器 多個 區域 每個後端服務都支援下列其中一種後端組合:
  • 所有執行個體群組後端:一或多個代管、非代管,或代管與非代管執行個體群組後端的組合 1
  • 所有區域性 NEG:一或多個 GCE_VM_IP_PORT 類型區域性 NEG 1
  • 所有混合式連線 NEG:一或多個 NON_GCP_PRIVATE_IP_PORT 類型 NEG
  • 可用區和混合式 NEG 的組合:GCE_VM_IP_PORTNON_GCP_PRIVATE_IP_PORT 類型 NEG 2
  • 單一 Private Service Connect NEG
  • 外部後端的所有區域性網際網路 NEG
  • 所有已發布的服務後端 (預覽)
INTERNAL_MANAGED
區域性外部 Proxy 網路負載平衡器

沒有 [TLS 路由](load-balancing/docs/tcp#tls-routes):1

[TLS 路由](load-balancing/docs/tcp#tls-routes):多個

區域 後端服務支援下列其中一種後端組合:
  • 所有執行個體群組後端:一或多個代管、非代管,或代管與非代管執行個體群組後端的組合 1
  • 所有區域性 NEG:一或多個 GCE_VM_IP_PORT 類型區域性 NEG 1
  • 所有混合式連線 NEG:一或多個 NON_GCP_PRIVATE_IP_PORT 類型 NEG
  • 可用區和混合式 NEG 的組合:GCE_VM_IP_PORTNON_GCP_PRIVATE_IP_PORT 類型的 NEG
  • 外部後端的所有區域性網際網路 NEG
  • 單一 Private Service Connect NEG
  • 所有已發布的服務後端 (預覽)
EXTERNAL_MANAGED
區域性內部 Proxy 網路負載平衡器

沒有 [TLS 路由](load-balancing/docs/tcp#tls-routes):1

[TLS 路由](load-balancing/docs/tcp#tls-routes):多個

區域 後端服務支援下列其中一種後端組合:
  • 所有執行個體群組後端:一或多個代管、非代管,或代管與非代管執行個體群組後端的組合 1
  • 所有區域性 NEG:一或多個 GCE_VM_IP_PORT 類型區域性 NEG 1
  • 所有混合式連線 NEG:一或多個 NON_GCP_PRIVATE_IP_PORT 類型 NEG
  • 可用區和混合式 NEG 的組合:GCE_VM_IP_PORTNON_GCP_PRIVATE_IP_PORT 類型的 NEG
  • 外部後端的所有區域性網際網路 NEG
  • 單一 Private Service Connect NEG
  • 所有已發布的服務後端 (預覽)
INTERNAL_MANAGED
區域性外部直通式網路負載平衡器 1 區域 後端服務支援下列其中一種後端組合:
  • 所有執行個體群組後端:一或多個代管、非代管,或代管和非代管執行個體群組後端的組合
  • 所有區域性 NEG:一或多個 GCE_VM_IP 類型的區域性 NEG
EXTERNAL
內部直通式網路負載平衡器 1 區域性 後端服務支援下列其中一種後端組合:
  • 所有執行個體群組後端:一或多個代管、非代管,或代管和非代管執行個體群組後端的組合
  • 所有區域性 NEG:一或多個 GCE_VM_IP 類型的區域性 NEG
  • 一個通訊埠對應 NEG
INTERNAL
1 這些負載平衡器支援僅限 IPv4 和雙重堆疊 (IPv4 和 IPv6) 的執行個體群組,以及區域網路端點群組後端。
2 如果是 GKE 部署作業,只有獨立 NEG 支援混合 NEG 後端。

負載平衡器命名

如果是 Proxy 網路負載平衡器和直通式網路負載平衡器,負載平衡器的名稱一律與後端服務的名稱相同。各 Cloud de Confiance 介面的行為如下:

  • Cloud de Confiance console. 如果您使用 Cloud de Confiance 控制台建立 Proxy 網路負載平衡器或直通式網路負載平衡器,系統會自動將您為負載平衡器名稱輸入的名稱,指派給後端服務。
  • Google Cloud CLI 或 API。如果您使用 gcloud CLI 或 API 建立 Proxy 網路負載平衡器或直通式網路負載平衡器,請在建立後端服務時輸入您選擇的名稱。這個後端服務名稱隨後會反映在 Cloud de Confiance 控制台中,做為負載平衡器的名稱。

如要瞭解應用程式負載平衡器的命名方式,請參閱網址對應總覽:負載平衡器命名

後端

後端是一或多個端點,會接收來自 Cloud de Confiance by S3NS負載平衡器 或無 Proxy 的 gRPC 用戶端流量。後端類型如下:

您無法刪除與後端服務相關聯的後端執行個體群組或 NEG。刪除執行個體群組或 NEG 之前,請先從參照該群組或 NEG 的所有後端服務中,移除該群組或 NEG 做為後端。

執行個體群組

本節說明執行個體群組如何與後端服務搭配運作。

後端 VM 和外部 IP 位址

後端服務中的後端 VM 不需要外部 IP 位址:

  • 區域性外部應用程式負載平衡器和區域性外部 Proxy 網路負載平衡器:用戶端會與代管的 Envoy Proxy 通訊,該 Proxy 會代管負載平衡器的外部 IP 位址。Envoy Proxy 位於僅限 Proxy 的子網路中。每個 Envoy Proxy 都會根據下列規則與後端 VM 或端點通訊:

    • 達到負載平衡的網路介面:Envoy 代理程式將要求流量傳送至哪個網路介面,取決於後端群組類型:

      • 如果是執行個體群組後端,負載平衡器一律會將封包傳送至每個後端 VM 的 nic0 介面。即使 VM 在相同或不同的 VPC 網路中有多個網路介面,這項規則也適用。

      • 如果是GCE_VM_IP_PORT區域 NEG 後端,負載平衡器會將封包傳送至與端點 IP 位址相關聯的網路介面。對於具有多個網路介面的後端 VM,網路介面可以位於任何虛擬私有雲網路,但有以下例外狀況:如果後端 VM 在同一個虛擬私有雲網路中具有 nic0 介面和一或多個非 nic0 介面,則負載平衡器只會將封包傳送至同一個虛擬私有雲網路中的 nic0 網路介面。

    • 負載平衡介面上的目的地 IP 位址:Envoy Proxy 會傳送要求流量,封包具有下列目的地 IP 位址:

      • 如果是執行個體群組後端,封包目的地會是nic0網路介面的主要內部 IPv4 位址,或是指派給nic0介面的 /96 IPv6 範圍中的第一個 /128IPv6 位址,具體取決於後端服務的IP 位址選取政策和網路介面堆疊類型。

      • 如果是 GCE_VM_IP_PORT 區域 NEG 後端,封包目的地會與 NEG 中指定的端點 IP 位址相符,具體取決於後端服務的 IP 位址選取政策和網路介面堆疊類型。如需有效的端點 IP 位址,請參閱具有端點的 NEGGCE_VM_IP_PORT 如果後端 VM 在同一個虛擬私有雲網路中具有 nic0 介面和一或多個非 nic0 介面,則在同一個虛擬私有雲網路的網路介面集中,您只能指定與 nic0 網路介面相關聯的端點 IP 位址。

  • 區域外部直通式網路負載平衡器:用戶端會使用 Google Maglev 基礎架構,直接與後端通訊。封包會保留原始來源和目的地 IP 位址,並路由至後端。負載平衡器會將封包傳送至下列其中一個網路介面:

    • 如果是以目標集區為基礎的區域性外部直通式網路負載平衡器,負載平衡器一律會將封包傳送至 nic0 介面。

    • 對於以後端服務為基礎的區域外部直通式網路負載平衡器 (具有執行個體群組後端),負載平衡器一律會將封包傳送至 nic0 介面。詳情請參閱「執行個體群組後端和網路介面」。

    • 如果是具有 GCE_VM_IP NEG 後端的後端服務型區域外部直通式網路負載平衡器,負載平衡器會將封包傳送至與 NEG 網路介面相符的網路介面。詳情請參閱「區域 NEG 後端和網路介面」。

    • 如果後端 VM 在同一個虛擬私有雲網路中具有 nic0 介面和一或多個非 nic0 介面,則負載平衡器會從同一個虛擬私有雲網路中的網路介面集,將封包傳送至 nic0 網路介面。

  • 內部直通式網路負載平衡器:用戶端會使用 Andromeda 網路虛擬化堆疊,直接與後端通訊。封包會保留原始來源和目的地 IP 位址,並路由及傳送至後端。如果是執行個體群組後端和 GCE_VM_IP NEG 後端,負載平衡器會將封包傳送至後端服務的虛擬私有雲網路中的網路介面:

    • 您可以明確指定後端服務的虛擬私有雲網路,也可以從新增至後端服務的第一個後端執行個體群組或 NEG,或從參照後端服務的第一個轉送規則中,繼承虛擬私有雲網路。詳情請參閱「後端服務網路規格」。

    • 如果後端 VM 在同一個虛擬私有雲網路中具有 nic0 介面和一或多個非 nic0 介面,則負載平衡器會從同一個虛擬私有雲網路中的網路介面集,將封包傳送至 nic0 網路介面。

已命名的通訊埠

後端服務的具名通訊埠屬性僅適用於使用執行個體群組後端的 Proxy 型負載平衡器 (應用程式負載平衡器和 Proxy 網路負載平衡器)。已命名的通訊埠會定義 Proxy (GFE 或 Envoy) 與後端執行個體之間的 TCP 連線所用的目的地通訊埠。

已命名的通訊埠設定如下:

  • 在每個執行個體群組後端,您必須使用鍵/值組合設定一或多個已命名的通訊埠。鍵代表您選擇的有意義通訊埠名稱,值則代表您指派給該名稱的通訊埠編號。名稱與號碼的對應關係會個別套用至每個執行個體群組後端。

  • 在後端服務中,您只需使用通訊埠名稱 (--port-name),即可指定單一已命名通訊埠。

後端服務會根據每個執行個體群組後端,將通訊埠名稱轉換為通訊埠編號。當執行個體群組的已命名通訊埠與後端服務的 --port-name 相符時,後端服務會使用這個通訊埠號碼與執行個體群組的 VM 通訊。

舉例來說,您可以在執行個體群組中設定名為 my-service-name 的已命名通訊埠,並將通訊埠設為 8888

gcloud compute instance-groups unmanaged set-named-ports my-unmanaged-ig \
    --named-ports=my-service-name:8888

然後在後端服務設定中參照具名連接埠,後端服務的 --port-name 設為 my-service-name

gcloud compute backend-services update my-backend-service \
    --port-name=my-service-name

如果每個執行個體群組為同一個通訊埠名稱指定不同的通訊埠編號,後端服務與不同執行個體群組中的 VM 通訊時,可以使用不同的通訊埠編號。

Proxy 負載平衡器後端服務使用的已解析通訊埠號碼,不需與負載平衡器轉送規則使用的通訊埠號碼相符。Proxy 負載平衡器會偵聽傳送至轉送規則 IP 位址和目的地通訊埠的 TCP 連線。由於 Proxy 會開啟第二個 TCP 連線至後端,因此第二個 TCP 連線的目的地通訊埠可能不同。

具名通訊埠僅適用於執行個體群組後端。具有 GCE_VM_IP_PORT 端點的區域 NEG、具有 NON_GCP_PRIVATE_IP_PORT 端點的混合 NEG,以及網際網路 NEG 會使用不同的機制定義通訊埠,也就是端點本身。

內部直通式網路負載平衡器和區域性外部直通式網路負載平衡器不會使用具名連接埠。這是因為這些負載平衡器屬於直通式負載平衡器,會直接將連線路徑導向後端,而不是建立新連線。封包會傳遞至後端,並保留負載平衡器轉送規則的目的地 IP 位址和通訊埠。

如要瞭解如何建立具名通訊埠,請參閱下列操作說明:

執行個體群組的限制和指引

使用執行個體群組後端時,請留意以下事項:

  • VM 執行個體只能屬於一個達到負載平衡的執行個體群組。舉例來說,VM 可以是兩個非代管執行個體群組的成員,也可以是一個代管執行個體群組和一個非代管執行個體群組的成員。如果 VM 是兩個以上的執行個體群組成員,則只有其中一個執行個體群組可由一或多個負載平衡器後端服務參照。

  • 兩個以上的後端服務可以使用同一個執行個體群組。執行個體群組與後端服務之間的每個對應關係,都可以使用不同的平衡模式,但不能使用不相容的平衡模式組合。

    • 不相容的平衡模式組合如下:

      • UTILIZATION 平衡模式與其他平衡模式不相容。如果執行個體群組是多個後端服務的後端,則執行個體群組必須在每個後端服務上使用 UTILIZATION 平衡模式。

      • CUSTOM_METRICS 平衡模式與其他平衡模式不相容。如果執行個體群組是多個後端服務的後端,則執行個體群組必須在每個後端服務上使用 CUSTOM_METRICS 平衡模式。

    • 由於平衡模式組合不相容,如果執行個體群組使用 UTILIZATIONCUSTOM_METRICS 平衡模式做為至少一個後端服務的後端,則該執行個體群組無法做為直通式網路負載平衡器的後端,因為直通式網路負載平衡器需要 CONNECTION 平衡模式。

  • 沒有單一指令可以變更多個後端服務上相同執行個體群組的平衡模式。如要變更執行個體群組的平衡模式,請使用下列技巧:

    • 從所有後端服務中移除執行個體群組,做為後端使用 (一個後端服務除外)。
    • 變更剩餘後端服務的執行個體群組平衡模式。
    • 將執行個體群組重新新增至其他後端服務,做為後端。

建議您採用下列最佳做法,取得更彈性的選項:

  • 請避免將同一個執行個體群組做為兩個以上後端服務的後端。請改用多個 NEG。

    • 與執行個體群組不同,VM 可以在兩個以上的負載平衡 NEG 中擁有端點。

    • 舉例來說,如果 VM 需要同時做為直通式網路負載平衡器,以及 Proxy 網路負載平衡器或應用程式負載平衡器的後端,請使用多個負載平衡的 NEG。將 VM 端點放在與各負載平衡器類型相容的專屬 NEG 中。然後將每個 NEG 與對應的負載平衡器後端服務建立關聯。

  • 使用「HTTP 負載平衡使用率」自動調度資源指標時,請勿將自動調度資源的代管執行個體群組新增至多個後端服務。如果兩個以上的後端服務參照同一個自動調度資源的代管執行個體群組,除非自動調度資源指標與負載平衡器活動無關,否則可能會彼此衝突。

區域性網路端點群組

「網路端點」會透過 IP 位址或 IP 位址和通訊埠的組合來代表服務,而非參照執行個體群組中的 VM。網路端點群組 (NEG) 是網路端點的邏輯分組。

區域 NEG 是區域資源,代表單一子網路中Cloud de Confiance 資源的 IP 位址或 IP 位址與通訊埠組合集合。

使用區域 NEG 做為後端的後端服務,會在 VM「內」執行的應用程式或容器之間分配流量。

區域 NEG 有兩種網路端點類型:

  • GCE_VM_IP 端點 (僅支援內部直通式網路負載平衡器,以及以後端服務為基礎的區域性外部直通式網路負載平衡器)。
  • GCE_VM_IP_PORT 個端點。

如要瞭解哪些產品支援區域 NEG 後端,請參閱「表格:後端服務和支援的後端類型」。

詳情請參閱「區域 NEG 總覽」。

網際網路網路端點群組

網際網路 NEG 是定義外部後端的資源。外部後端是指託管於地端部署基礎架構,或第三方提供的基礎架構。

網際網路 NEG 是主機名稱或 IP 位址,加上選用通訊埠的組合。網際網路 NEG 有兩種網路端點類型:INTERNET_FQDN_PORTINTERNET_IP_PORT

網際網路 NEG 適用於區域範圍。如要查看哪些產品支援網際網路 NEG 後端,請參閱「表格:後端服務和支援的後端類型」。

詳情請參閱網際網路網路端點群組總覽

已發布的服務後端

如果生產端和消費端虛擬私有雲網路都屬於同一個機構,您可以使用已發布的服務後端存取已發布的服務。您可以透過已發布的服務後端,設定支援的負載平衡器或 Cloud Service Mesh,將流量透過 Private Service Connect 端點轉送至已發布的服務。如要將流量導向已發布的服務,請將區域後端服務與服務附件建立關聯。這項設定稱為發布的服務後端。

這些後端可讓支援的負載平衡器和 Cloud Service Mesh 共用 Private Service Connect 端點,提供統一的連線能力。如要建立這項連線,請提供生產者服務連結的參照。發布的服務後端也能提供進階流量管理和可觀測性,例如強制執行集中式安全政策,以及收集集中式指標。

如要進一步瞭解如何為負載平衡器設定已發布服務的後端,請參閱「透過已發布服務的後端和端點存取已發布服務」。

混合後端

將不同類型的後端新增至單一後端服務時,請注意下列使用考量:

  • 單一後端服務無法同時使用執行個體群組和區域 NEG。
  • 您可以在同一個後端服務上使用不同類型的執行個體群組。舉例來說,單一後端服務可以同時參照代管和非代管執行個體群組。如要瞭解哪些後端與哪些後端服務相容,請參閱上一節的表格。
  • 使用特定 Proxy 負載平衡器時,您可以結合區域 NEG (含 GCE_VM_IP_PORT 端點) 和混合式連線 NEG (含 NON_GCP_PRIVATE_IP_PORT 端點),設定混合式負載平衡。如要查看哪些負載平衡器具備這項功能,請參閱「表格:後端服務和支援的後端類型」。

後端的通訊協定

建立後端服務時,必須指定用於與後端通訊的通訊協定。每個後端服務只能指定一個通訊協定,無法指定次要通訊協定做為備用通訊協定。

有效通訊協定取決於負載平衡器類型。

資料表:後端的通訊協定
產品 後端服務通訊協定選項
應用程式負載平衡器 HTTP、HTTPS、HTTP/2
Proxy 網路負載平衡器

TCP 或 SSL

區域性 Proxy 網路負載平衡器僅支援 TCP。

直通式網路負載平衡器 TCP、UDP 或 UNSPECIFIED

變更後端服務的通訊協定後,後端會暫時無法透過負載平衡器存取。

負載平衡器與後端之間的加密

如要瞭解負載平衡器與後端之間的加密,請參閱「後端加密」。

平衡模式、目標容量和容量配置器

如果是應用程式負載平衡器、Cloud Service Mesh 和 Proxy 網路負載平衡器,當您將支援的後端新增至後端服務時,需要提供平衡模式、目標容量和容量調整比例等參數。負載平衡器會使用這些參數,管理新要求或新連線在含有支援後端的區域中的分配情形:

  • 「平衡模式」定義負載平衡器如何測量容量。 Cloud de Confiance 有下列平衡模式:
    • CONNECTION:根據新的 TCP 連線數量定義容量。
    • RATE:根據新的 HTTP 要求率定義容量。
    • IN-FLIGHT (預覽版): 根據進行中的 HTTP 要求數量 (而非 HTTP 要求率) 定義容量。如果要求完成時間超過一秒,請使用這個平衡模式,而不要使用 RATE
    • UTILIZATION:根據執行個體群組區域中 VM 的 CPU 使用率估計值定義容量。
    • CUSTOM_METRICS:根據使用者定義的自訂指標定義容量。
  • 目標容量會定義目標容量數值。
    • 目標容量不是斷路器。
    • 當容量用量達到目標容量時,如果後端設定在兩個以上的區域,負載平衡器會將新要求或新連線導向至其他區域。
    • 如果您在多個區域中設定後端,全域外部應用程式負載平衡器、全域外部 Proxy 網路負載平衡器、跨區域內部應用程式負載平衡器,以及跨區域內部 Proxy 網路負載平衡器也會使用容量,將要求導向不同區域中的可用區。
    • 當所有可用區都達到目標容量時,系統會按比例超額填滿,以分配新要求或新連線。
  • 容量調度器可手動調度目標容量。容量調度器的值如下:
    • 0:表示後端完全耗盡。如果後端服務只有一個後端,就無法使用 0 值。
    • 0.1 (10%) - 1.0 (100%):表示後端容量的使用百分比。

直通式網路負載平衡器會以符號方式使用 CONNECTION 平衡模式,但不支援目標容量或容量縮放比例。如要進一步瞭解直通式網路負載平衡器如何分配新連線,請參閱下列文章:

支援的後端

對於應用程式負載平衡器、Cloud Service Mesh 和 Proxy 網路負載平衡器,下列類型的後端支援平衡模式、目標容量和容量調整比例參數:

網際網路 NEG、無伺服器 NEG 和 Private Service Connect NEG 不支援平衡模式、目標容量和容量調整參數。

應用程式負載平衡器和 Cloud Service Mesh 的平衡模式

應用程式負載平衡器和 Cloud Service Mesh 後端可用的平衡模式,取決於支援的後端類型和流量持續時間設定 (預先發布版)。

流量持續時間設定

對於應用程式負載平衡器和 Cloud Service Mesh 後端,您可以選擇指定流量持續時間設定。這項設定是支援的後端與後端服務之間對應的專屬設定。流量時間長度設定有兩個有效值:

  • SHORT:建議用於在不到一秒內,以後端回應回覆的 HTTP 要求。如果未明確指定流量持續時間,負載平衡器會以指定 SHORT 的方式運作。
  • LONG:建議用於後端需要超過一秒才能產生回應的 HTTP 要求。

如要在將後端新增至後端服務時明確設定流量時間長度,請採取下列任一做法:

平衡模式 (適用於短時間的流量)

如果未指定流量持續時間設定,或將其設為 SHORT(預覽版),應用程式負載平衡器和 Cloud Service Mesh 後端可用的平衡模式,取決於支援的後端類型。

表格:使用短暫流量持續時間設定的應用程式負載平衡器和 Cloud Service Mesh 後端負載平衡模式
支援的後端 平衡模式
CONNECTION RATE IN_FLIGHT UTILIZATION CUSTOM_METRICS
執行個體群組
具有 GCE_VM_IP_PORT 端點的區域性 NEG
單一可用區混合式連線 NEG

長時間流量的平衡模式

如果流量持續時間設定為 LONG,應用程式負載平衡器和 Cloud Service Mesh 後端可用的平衡模式,取決於支援的後端類型。

表格:使用長時間流量設定的應用程式負載平衡器和 Cloud Service Mesh 後端負載平衡模式
支援的後端 平衡模式
CONNECTION RATE IN_FLIGHT UTILIZATION CUSTOM_METRICS
執行個體群組
具有 GCE_VM_IP_PORT 端點的區域性 NEG
單一可用區混合式連線 NEG

Proxy 網路負載平衡器的平衡模式

Proxy 網路負載平衡器後端可用的平衡模式,取決於支援的後端類型。

表格:Proxy 網路負載平衡器的平衡模式
支援的後端 平衡模式
CONNECTION RATE IN_FLIGHT UTILIZATION CUSTOM_METRICS
執行個體群組
具有 GCE_VM_IP_PORT 端點的區域性 NEG
單一可用區混合式連線 NEG

目標容量規格

目標容量規格適用於應用程式負載平衡器、Cloud Service Mesh,以及支援平衡模式、目標容量和容量縮放比例設定的 Proxy 網路負載平衡器後端。

目標容量規格與直通式網路負載平衡器無關。

連線平衡模式

Proxy 網路負載平衡器後端可使用 CONNECTION 平衡模式,並搭配下列其中一個必要目標容量參數:

CONNECTION平衡模式的目標容量參數
目標容量參數 支援的後端
區域性 (代管或非代管) 執行個體群組 地區代管執行個體群組 具有 GCE_VM_IP_PORT 端點的區域性 NEG 單一可用區混合式連線 NEG
max-connections
每個後端區域的目標 TCP 連線數
max-connections-per-instance
每個 VM 執行個體的目標 TCP 連線。Cloud Load Balancing 會使用這個參數,計算每個後端區域的目標 TCP 連線數。
max-connections-per-endpoint
每個 NEG 端點的目標 TCP 連線。Cloud Load Balancing 會使用這個參數,計算每個後端區域的目標 TCP 連線數。

使用 max-connections 參數

指定 max-connections 參數時,您提供的值會定義整個區域的容量。

  • 如果區域執行個體群組有 N 個執行個體,其中 h 個執行個體運作正常 (hN),計算方式如下:

    • 如果將 max-connections 設為 X,區域目標容量就是 X
    • 每個執行個體的平均連線數為 X / h
  • 區域代管執行個體群組包含多個可用區,因此不支援 max-connections 參數。請改用 max-connections-per-instance 參數。

  • 如果區域 NEG 有 N 個端點,其中 h 個端點運作正常 (hN),計算方式如下:

    • 如果將 max-connections 設為 X,區域目標容量就是 X
    • 每個端點的平均連線數為 X / h

使用 max-connections-per-instancemax-connections-per-endpoint 參數

指定 max-connections-per-instancemax-connections-per-endpoint 參數時,負載平衡器會使用您提供的值計算每個區域的容量:

  • 如果區域執行個體群組有 N 個執行個體,其中 h 個執行個體運作正常 (hN),計算方式如下:

    • 如果將 max-connections-per-instance 設為 X,區域目標容量為 N * X。這相當於將 max-connections 設定為 N * X
    • 每個執行個體的平均連線數為 (N * X) / h
  • 如果是地區代管執行個體群組,當您將 max-connections-per-instance 設為 X 時, Cloud de Confiance 會計算執行個體群組每個區域的目標容量。在每個區域中,如果總共有 K 個執行個體,且有 h 個執行個體健康狀態良好 (其中 hK),則計算方式如下:

    • 可用區的目標容量為 K * X
    • 該區域中每個執行個體的平均連線數為 (K * X) / h
  • 如果區域 NEG 有 N 個端點,其中 h 個端點運作正常 (hN),計算方式如下:

    • 如果將 max-connections-per-endpoint 設為 X,區域目標容量為 N * X。這相當於將 max-connections 設定為 N * X
    • 每個端點的平均連線數為 (N * X) / h

速率平衡模式

如果應用程式負載平衡器和 Cloud Service Mesh 後端具有未指定或較短的流量持續時間設定 (預覽版),則可使用 RATE 平衡模式,並搭配下列其中一個必要目標容量參數:

表格:RATE平衡模式的目標容量參數
目標容量參數 支援的後端
區域性 (代管或非代管) 執行個體群組 地區代管執行個體群組 具有 GCE_VM_IP_PORT 端點的區域性 NEG 單一可用區混合式連線 NEG
max-rate
每個後端區域的目標 HTTP 要求比率
max-rate-per-instance
每個 VM 執行個體的目標 HTTP 要求比率。Cloud Load Balancing 會使用這個參數,計算每個後端區域的目標 HTTP 要求率。
max-rate-per-endpoint
每個 NEG 端點的目標 HTTP 要求比率。Cloud Load Balancing 會使用這個參數,計算每個後端區域的目標 HTTP 要求率。

使用 max-rate 參數

指定 max-rate 參數時,您提供的值會定義整個區域的容量。

  • 如果區域執行個體群組有 N 個執行個體,其中 h 個執行個體運作正常 (hN),計算方式如下:

    • 如果將 max-rate 設為 X,區域目標容量為每秒 X 個要求。
    • 每個執行個體的每秒平均要求數為 X / h
  • 區域代管執行個體群組包含多個可用區,因此不支援 max-rate 參數。請改用 max-rate-per-instance 參數。

  • 如果區域 NEG 有 N 個端點,其中 h 個端點運作正常 (hN),計算方式如下:

    • 如果將 max-rate 設為 X,區域目標容量為每秒 X 個要求。
    • 每個端點的每秒平均要求數為 X / h

使用 max-rate-per-instancemax-rate-per-endpoint 參數

指定 max-rate-per-instancemax-rate-per-endpoint 參數時,負載平衡器會使用您提供的值計算每個區域的容量:

  • 如果區域執行個體群組有 N 個執行個體,其中 h 個執行個體運作正常 (hN),計算方式如下:

    • 如果將 max-rate-per-instance 設為 X,區域目標容量為每秒 N * X 個要求。這相當於將 max-rate 設定為 N * X
    • 每個執行個體的每秒平均要求數為 (N * X) / h
  • 如果是地區代管執行個體群組,當您將 max-rate-per-instance 設為 X 時, Cloud de Confiance 會計算執行個體群組中每個區域的每區域目標容量。在每個可用區中,如果共有 K 個執行個體,且有 h 個健康狀態良好的執行個體 (其中 hK),則計算方式如下:

    • 該區域的目標容量為每秒 K * X 個要求。
    • 該區域中每個執行個體的每秒平均要求數為 (K * X) / h
  • 如果區域 NEG 有 N 個端點,其中 h 個端點運作正常 (hN),計算方式如下:

    • 如果將 max-rate-per-endpoint 設為 X,區域目標容量為每秒 N * X 個要求。這相當於將 max-rate 設定為 N * X
    • 每個端點的每秒平均要求數為 (N * X) / h

飛行中平衡模式

應用程式負載平衡器 (傳統版應用程式負載平衡器除外) 和 Cloud Service Mesh 後端,如果流量持續時間設定較長,則可使用 IN_FLIGHT 平衡模式,並搭配下列其中一個必要目標容量參數:

表格IN_FLIGHT平衡模式的目標容量參數
目標容量參數 支援的後端
區域性 (代管或非代管) 執行個體群組 地區代管執行個體群組 具有 GCE_VM_IP_PORT 端點的區域性 NEG 單一可用區混合式連線 NEG
max-in-flight-requests
每個後端區域進行中 HTTP 要求目標數
max-in-flight-requests-per-instance
每個 VM 執行個體進行中 HTTP 要求的目標數量。 Cloud Load Balancing 會使用這個參數,計算每個後端區域進行中的 HTTP 要求目標數。
max-in-flight-requests-per-endpoint
每個 NEG 端點進行中 HTTP 要求的目標數量。負載平衡會使用這個參數,計算每個後端區域的進行中 HTTP 要求目標數量。

使用 max-in-flight-requests 參數

指定 max-in-flight-requests 參數時,您提供的值會定義整個區域的容量。

  • 如果區域執行個體群組有 N 個執行個體,其中 h 個執行個體運作正常 (hN),計算方式如下:

    • 如果將 max-in-flight-requests 設為 X,區域目標容量就是 X 個處理中的 HTTP 要求。
    • 每個執行個體進行中的 HTTP 要求平均數量為 X / h
  • 區域代管執行個體群組包含多個可用區,因此不支援 max-in-flight-requests 參數。請改用 max-in-flight-requests-per-instance 參數。

  • 如果區域 NEG 有 N 個端點,其中 h 個端點運作正常 (hN),計算方式如下:

    • 如果將 max-in-flight-requests 設為 X,區域目標容量就是 X 個處理中的 HTTP 要求。
    • 每個端點的進行中 HTTP 要求平均數量為 X / h

使用 max-in-flight-requests-per-instancemax-in-flight-requests-per-endpoint 參數

指定 max-in-flight-requests-per-instancemax-in-flight-requests-per-endpoint 參數時,負載平衡器會使用您提供的值計算每個區域的容量:

  • 如果區域執行個體群組有 N 個執行個體,其中 h 個執行個體運作正常 (hN),計算方式如下:

    • 如果將 max-in-flight-requests-per-instance 設為 X,區域目標容量為 N * X 進行中的 HTTP 要求。這相當於將 max-in-flight-requests 設定為 N * X
    • 每個執行個體平均進行中的 HTTP 要求數為 (N * X) / h
  • 如果是地區代管執行個體群組,當您將 max-in-flight-requests-per-instance 設為 X 時, Cloud de Confiance 會計算執行個體群組中每個區域的目標容量。在每個區域中,如果總共有 K 個執行個體,且有 h 個執行個體健康狀態良好 (其中 hK),則計算方式如下:

    • 該區域的目標容量為 K * X 進行中的 HTTP 要求。
    • 該區域中每個執行個體平均處理的 HTTP 要求數為 (K * X) / h
  • 如果區域 NEG 有 N 個端點,其中 h 個端點運作正常 (hN),計算方式如下:

    • 如果將 max-in-flight-requests-per-endpoint 設為 X,區域目標容量為 N * X 進行中的 HTTP 要求。這相當於將 max-in-flight-requests 設定為 N * X
    • 每個端點的平均進行中 HTTP 要求數為 (N * X) / h

使用率平衡模式

應用程式負載平衡器、Cloud Service Mesh 和 Proxy 網路負載平衡器執行個體群組後端可使用 UTILIZATION 平衡模式。NEG 後端不支援這種平衡模式。

UTILIZATION 平衡模式取決於 VM CPU 使用率和其他因素。如果這些因素出現波動,負載平衡器可能會以某種方式計算使用率,導致部分 VM 收到的要求或連線比其他 VM 多。因此,請注意以下幾點:

  • 只有在工作階段相依性設為 NONE 時,才能使用 UTILIZATION 平衡模式。 如果後端服務使用的工作階段相依性與 NONE 不同,請改用 RATEIN-FLIGHTCONNECTION 平衡模式。

  • 如果與後端服務相關聯的所有 VM 平均使用率低於 10%,負載平衡器就會對微小的流量變化非常敏感。因此,流量不平衡是預期會發生的情況,負載的小幅變化可能會導致流量在不同後端之間轉移。

UTILIZATION 平衡模式沒有強制性的目標容量設定,但您可以選擇使用下列章節所述的目標容量參數或目標容量參數組合,定義目標容量。

應用程式負載平衡器和 Cloud Service Mesh 後端的使用率目標容量參數,且流量持續時間設定為未指定或短時間

如果應用程式負載平衡器和 Cloud Service Mesh 後端未指定或設定較短的流量持續時間 (預覽版),可以使用 UTILIZATION 平衡模式,並搭配下列其中一個目標容量參數或參數組合:

表格:適用於應用程式負載平衡器和 Cloud Service Mesh 後端的UTILIZATION平衡模式目標容量參數和參數組合,這些後端具有未指定或短暫的流量持續時間設定
目標容量參數或參數組合 支援的後端
區域性 (代管或非代管) 執行個體群組 地區代管執行個體群組 具有 GCE_VM_IP_PORT 端點的區域性 NEG 單一可用區混合式連線 NEG
max-utilization
每個後端區域的目標使用率
max-rate
每個後端區域的目標 HTTP 要求比率
max-ratemax-utilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標使用率
  • 區域的目標 HTTP 要求率
max-rate-per-instance
每個 VM 執行個體的目標 HTTP 要求比率。Cloud Load Balancing 會使用這個參數,計算每個後端區域的目標 HTTP 要求率。
max-rate-per-instancemax-utilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標使用率
  • 區域的目標 HTTP 要求比率 (根據區域中 VM 的每個 VM 執行個體目標 HTTP 要求比率計算得出)

如要進一步瞭解 max-ratemax-rate-per-instance 目標容量參數,請參閱本文的「速率平衡模式」。

應用程式負載平衡器和 Cloud Service Mesh 後端的利用率目標容量參數,並設定較長的流量持續時間

應用程式負載平衡器和 Cloud Service Mesh 後端 (預先發布) 具有較長的流量持續時間設定,可搭配下列其中一個目標容量參數或參數組合,使用 UTILIZATION 平衡模式:

表格:應用程式負載平衡器和 Cloud Service Mesh 後端的UTILIZATION平衡模式目標容量參數和參數組合,且流量持續時間設定較長 (預先發布)
目標容量參數或參數組合 支援的後端
區域性 (代管或非代管) 執行個體群組 地區代管執行個體群組 具有 GCE_VM_IP_PORT 端點的區域性 NEG 單一可用區混合式連線 NEG
max-utilization
每個後端區域的目標使用率
max-in-flight-requests
每個後端區域進行中 HTTP 要求目標數
max-in-flight-requestsmax-utilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標使用率
  • 區域的進行中 HTTP 要求目標數
max-in-flight-requests-per-instance
每個 VM 執行個體進行中 HTTP 要求的目標數量。 Cloud Load Balancing 會使用這個參數,計算每個後端區域進行中的 HTTP 要求目標數。
max-in-flight-requests-per-instancemax-utilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標使用率
  • 可用區進行中 HTTP 要求目標數量 (根據可用區中 VM 的每個 VM 執行個體進行中 HTTP 要求目標數量計算)

如要進一步瞭解 max-in-flight-requestsmax-in-flight-requests-per-instance 目標容量參數,請參閱本文的「In-flight 平衡模式」一節。

Proxy 網路負載平衡器的使用率目標容量參數

Proxy 網路負載平衡器的執行個體群組後端可使用 UTILIZATION 平衡模式,搭配下列其中一個目標容量參數或參數組合。

UTILIZATION
表格:Proxy 網路負載平衡器後端的平衡模式目標容量 參數和參數組合
目標容量參數或參數組合 支援的後端
區域性 (代管或非代管) 執行個體群組 地區代管執行個體群組 具有 GCE_VM_IP_PORT 端點的區域性 NEG 單一可用區混合式連線 NEG
max-utilization
每個後端區域的目標使用率
max-connections
每個後端區域的目標 TCP 連線數
max-connectionsmax-utilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標使用率
  • 區域的目標 TCP 連線
max-connections-per-instance
每個 VM 執行個體的目標 TCP 連線。Cloud Load Balancing 會使用這個參數,計算每個後端區域的目標 TCP 連線數。
max-connections-per-instancemax-utilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標使用率
  • 區域的目標 TCP 連線 (根據區域中 VM 的每個 VM 執行個體目標 TCP 連線計算)

如要進一步瞭解 max-connectionsmax-connections-per-instance 目標容量參數,請參閱本文的「連線平衡模式」。

自訂指標平衡模式

應用程式負載平衡器和 Proxy 網路負載平衡器後端可使用 CUSTOM_METRICS 平衡模式。您可以根據對您而言最重要的應用程式或基礎架構資料,定義自訂指標的目標容量。詳情請參閱「應用程式負載平衡器的自訂指標」。

CUSTOM_METRICS 平衡模式沒有強制性的目標容量設定,但您可以選擇使用下列章節所述的目標容量參數或目標容量參數組合,定義目標容量。

自訂指標會針對應用程式負載平衡器後端,設定未指定或流量持續時間較短的目標容量參數

如果應用程式負載平衡器後端未指定或流量持續時間設定較短 (預覽版),則可使用 CUSTOM_METRICS 平衡模式,搭配下列其中一個目標容量參數或參數組合:

表格CUSTOM_METRICS 負載平衡模式目標 容量參數和參數組合,適用於未指定或流量持續時間較短的應用程式負載平衡器後端 設定
目標容量參數或參數組合 支援的後端
區域性 (代管或非代管) 執行個體群組 地區代管執行個體群組 具有 GCE_VM_IP_PORT 端點的區域性 NEG 單一可用區混合式連線 NEG
backends[].customMetrics[].maxUtilization
以每個後端區域的自訂指標用量為目標
max-rate
每個後端區域的目標 HTTP 要求比率
max-ratebackends[].customMetrics[].maxUtilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標自訂指標用量
  • 區域的目標 HTTP 要求率
max-rate-per-instance
每個 VM 執行個體的目標 HTTP 要求比率。Cloud Load Balancing 會使用這個參數,計算每個後端區域的目標 HTTP 要求率。
max-rate-per-instancebackends[].customMetrics[].maxUtilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標自訂指標用量
  • 區域的目標 HTTP 要求比率 (根據區域中 VM 的每個 VM 執行個體目標 HTTP 要求比率計算得出)
max-rate-per-endpoint
每個 NEG 端點的目標 HTTP 要求比率。Cloud Load Balancing 會使用這個參數,計算每個後端區域的目標 HTTP 要求率。
max-rate-per-endpointbackends[].customMetrics[].maxUtilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標自訂指標用量
  • 區域的目標 HTTP 要求比率 (根據區域中端點的每個 NEG 端點目標 HTTP 要求比率計算)

如要進一步瞭解 max-ratemax-rate-per-instancemax-rate-per-endpoint 目標容量參數,請參閱本文中的「速率平衡模式」。

自訂指標目標容量參數,適用於設定流量持續時間較長的應用程式負載平衡器後端

如果應用程式負載平衡器後端流量持續時間設定較長,可以使用 CUSTOM_METRICS 平衡模式,並搭配下列其中一個目標容量參數或參數組合:

表格: CUSTOM_METRICS 負載平衡模式目標容量參數,以及適用於後端的應用程式負載平衡器參數組合,並設有長時間的流量設定 (預覽版)
目標容量參數或參數組合 支援的後端
區域性 (代管或非代管) 執行個體群組 地區代管執行個體群組 具有 GCE_VM_IP_PORT 端點的區域性 NEG 單一可用區混合式連線 NEG
backends[].customMetrics[].maxUtilization
以每個後端區域的自訂指標用量為目標
max-in-flight-requests
每個後端區域進行中 HTTP 要求目標數
max-in-flight-requestsbackends[].customMetrics[].maxUtilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標自訂指標用量
  • 區域的進行中 HTTP 要求目標數
max-in-flight-requests-per-instance
每個 VM 執行個體進行中 HTTP 要求的目標數量。 Cloud Load Balancing 會使用這個參數,計算每個後端區域進行中的 HTTP 要求目標數。
max-in-flight-requests-per-instancebackends[].customMetrics[].maxUtilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標自訂指標用量
  • 可用區進行中 HTTP 要求目標數量 (根據可用區中 VM 的每個 VM 執行個體進行中 HTTP 要求目標數量計算)
max-in-flight-requests-per-endpoint
每個 NEG 端點進行中 HTTP 要求的目標數量。負載平衡會使用這個參數,計算每個後端區域的進行中 HTTP 要求目標數。
max-in-flight-requests-per-endpointbackends[].customMetrics[].maxUtilization
目標是後端區域中第一個觸及的項目:
  • 區域的目標自訂指標用量
  • 可用區的進行中 HTTP 要求目標數量 (根據可用區中端點的每個 NEG 端點進行中 HTTP 要求目標數量計算)

如要進一步瞭解 max-in-flight-requestsmax-in-flight-requests-per-instancemax-flight-requests-per-endpoint 目標容量參數,請參閱「飛行中平衡模式」。

服務負載平衡政策

服務負載平衡政策 (serviceLbPolicy) 是與負載平衡器的後端服務相關聯的資源。您可以自訂參數,控制流量在後端服務關聯後端的分配方式:

  • 自訂負載平衡演算法,決定流量在區域或可用區之間的分配方式。
  • 啟用自動排空容量功能,讓負載平衡器能快速排空來自狀況不佳後端的流量。

此外,您也可以將特定後端指定為偏好的後端。在將要求傳送至其餘後端之前,必須先將這些後端的使用量達到上限 (也就是後端平衡模式指定的目標容量)。

詳情請參閱「進階負載平衡最佳化」。

負載平衡地區政策

後端服務的流量分配方式取決於平衡模式和負載平衡地區政策。平衡模式會決定應傳送至每個後端 (執行個體群組或 NEG) 的流量比例。接著,負載平衡區域政策 (LocalityLbPolicy) 會決定流量在各區域的執行個體或端點間的分配方式。對於地區代管執行個體群組,地區性政策會套用至每個構成區域。

負載平衡地區政策是依後端服務設定。可用的設定如下:

  • ROUND_ROBIN (預設):這是預設的負載平衡位置政策設定,負載平衡器會以循環方式選取健康狀態良好的後端。

  • LEAST_REQUESTO(1)演算法。負載平衡器會隨機選取兩個健康狀態良好的主機,並選擇處理中要求數較少的主機。

  • RING_HASH:這項演算法會對後端實作一致性雜湊。根據演算法的屬性,如果在包含 N 個主機的組合中新增/移除一個主機,則只會影響 1/N 項要求。

  • RANDOM:負載平衡器會隨機選取健康狀態良好的主機。

  • ORIGINAL_DESTINATION:負載平衡器會根據用戶端連線中繼資料選取後端。系統會開啟連線,連至傳入用戶端要求中指定的原始目的地 IP 位址,然後將要求重新導向至負載平衡器。

  • MAGLEV:對後端實作一致性雜湊,可用來取代 RING_HASH 政策。Maglev 不如 RING_HASH 穩定,但資料表查詢建構作業和主機選取作業速度較快。如要進一步瞭解 Maglev,請參閱 Maglev 白皮書

  • WEIGHTED_MAGLEV:使用健康狀態檢查回報的權重,為區域外部直通式網路負載平衡器實作個別執行個體加權負載平衡。如果使用這項政策,後端服務必須設定非舊版 HTTP 健康狀態檢查,且健康狀態檢查回覆應包含非標準 HTTP 回應標頭欄位 X-Load-Balancing-Endpoint-Weight,以指定每個執行個體的權重。只要每個執行個體回報有效權重或回報 UNAVAILABLE_WEIGHT,負載平衡決策就會以最後處理的健康狀態檢查回覆中回報的每個執行個體權重為依據。否則負載平衡會維持等權重。

    如需範例,請參閱「為區域外部直通式網路負載平衡器設定加權負載平衡」。

  • WEIGHTED_ROUND_ROBIN:負載平衡器會使用使用者定義的自訂指標,在後端選取最適合的執行個體或端點來處理要求。

表格:支援的負載平衡地區政策設定
負載平衡器 負載平衡地區政策選項

全域外部應用程式負載平衡器

區域性外部應用程式負載平衡器

跨區域內部應用程式負載平衡器

區域性內部應用程式負載平衡器

支援的選項:

  • ROUND_ROBIN

  • LEAST_REQUEST

  • RING_HASH

  • RANDOM

  • ORIGINAL_DESTINATION (全域外部應用程式負載平衡器不支援)

  • MAGLEV

  • WEIGHTED_ROUND_ROBIN

全域外部 Proxy 網路負載平衡器

區域性外部 Proxy 網路負載平衡器

跨區域內部 Proxy 網路負載平衡器

區域性內部 Proxy 網路負載平衡器

支援的選項:

  • ROUND_ROBIN

  • LEAST_REQUEST

  • RING_HASH

  • RANDOM

  • MAGLEV

  • ORIGINAL_DESTINATION (全域外部 Proxy 網路負載平衡器不支援此功能)

區域性外部直通式網路負載平衡器

支援的選項:

  • MAGLEV

  • WEIGHTED_MAGLEV

內部直通式網路負載平衡器

傳統版應用程式負載平衡器

傳統版 Proxy 網路負載平衡器

不支援

請注意,負載平衡地區政策 (localityLbPolicy) 的有效預設值會根據工作階段相依性設定而異。如果未設定工作階段相依性 (也就是工作階段相依性維持預設值 NONE),則 localityLbPolicy 的預設值為 ROUND_ROBIN。如果將工作階段親和性設為 NONE 以外的值,localityLbPolicy 的預設值為 MAGLEV

如要設定負載平衡區域政策,可以使用Cloud de Confiance 控制台、gcloud (--locality-lb-policy) 或 API (localityLbPolicy)。

後端子集

後端子集是選用功能,可將部分後端指派給每個 Proxy 執行個體,藉此提升效能和擴充性。

後端子集支援下列項目:

  • 區域性內部應用程式負載平衡器
  • 內部直通式網路負載平衡器

區域性內部應用程式負載平衡器的後端子集

如果是區域內部應用程式負載平衡器,後端子集會自動將區域後端服務中的後端子集指派給每個 Proxy 執行個體。根據預設,每個 Proxy 執行個體都會開啟與後端服務中所有後端的連線。當 Proxy 執行個體和後端數量都很大時,開啟所有後端的連線可能會導致效能問題。

啟用子集後,每個 Proxy 只會開啟與部分後端的連線,減少與每個後端保持開啟的連線數。減少同時開啟的後端連線數,可提升後端和 Proxy 的效能。

下圖顯示負載平衡器和兩個 Proxy。如果沒有後端子集,來自這兩個 Proxy 的流量會分配至後端服務 1 中的所有後端。啟用後端子集後,每個 Proxy 的流量會分配到後端子集。Proxy 1 的流量會分配至後端 1 和 2,Proxy 2 的流量則會分配至後端 3 和 4。

比較未採用和採用後端子集的內部應用程式負載平衡器。
比較未啟用和啟用後端子集的內部應用程式負載平衡器 (按一下即可放大)。

此外,您也可以設定 localityLbPolicy 政策,進一步調整後端的負載平衡流量。詳情請參閱「流量政策」。

如要瞭解如何為內部應用程式負載平衡器設定後端子設定,請參閱「設定後端子設定」。

內部應用程式負載平衡器的後端子集相關注意事項

  • 雖然後端子集化設計的目的是確保所有後端執行個體都能充分運用,但這可能會導致每個後端收到的流量量出現一些偏差。建議將 localityLbPolicy 設為 LEAST_REQUEST,適用於對後端負載平衡很敏感的後端服務。
  • 啟用或停用子集功能會中斷現有連線。
  • 後端子集需要工作階段相依性為 NONE (5 個組合雜湊)。如要使用其他工作階段相依性選項,必須先停用後端子集。--subsetting-policy--session-affinity 標記的預設值都是 NONE,且一次只能將其中一個標記設為不同的值。

內部直通式網路負載平衡器的後端子設定

內部直通式網路負載平衡器的後端子集功能,可讓您擴充內部直通式網路負載平衡器,支援每個內部後端服務的更多後端 VM 執行個體。

如要瞭解子集對這項限制的影響,請參閱「後端服務」中的「配額與限制」欄。

根據預設,子集功能會停用,這會限制後端服務最多只能分配給 250 個後端執行個體或端點。如果後端服務需要支援超過 250 個後端,可以啟用子集。啟用子集後,系統會為每個用戶端連線選取後端執行個體子集。

下圖顯示這兩種運作模式差異的縮小模型。

比較未進行子集化和已進行子集化的內部直通式網路負載平衡器。
比較有和沒有子集的內部直通式網路負載平衡器 (按一下即可放大)。

如果不進行子集化,系統就能更充分地運用整組健康狀態良好的後端,並根據流量分配,將新的用戶端連線分配給所有健康狀態良好的後端。子集會限制負載平衡,但負載平衡器可支援超過 250 個後端。

如需設定操作說明,請參閱「子集」。

內部直通式網路負載平衡器的後端子集相關注意事項

  • 啟用子集後,即使後端數量很少,並非所有後端都會收到特定傳送端的流量。
  • 如要瞭解啟用子集時的後端執行個體數量上限,請參閱配額頁面
  • 子集化僅支援 5 元組工作階段相依性
  • Packet Mirroring 不支援子集。
  • 啟用或停用子集功能會中斷現有連線。
  • 如果地端部署用戶端需要存取內部直通式網路負載平衡器,子集化可大幅減少接收來自地端部署用戶端連線的後端數量。這是因為 Cloud VPN 通道或 Cloud Interconnect VLAN 連結的區域,會決定負載平衡器的後端子集。特定區域中的所有 Cloud VPN 和 Cloud Interconnect 端點都會使用相同的子集。不同地區會使用不同的子集。

後端子集定價

使用後端子集化功能不會產生費用。詳情請參閱「所有網路定價」。

工作階段相依性

工作階段相依性可讓您控制負載平衡器如何為新連線選取後端,只要健康狀態良好的後端數量維持不變,選取方式就會具有可預測性。如果應用程式需要將特定使用者的多個要求導向至相同後端或端點,這就非常有用。這類應用程式通常包含廣告放送、遊戲或服務使用的有狀態伺服器,且內部快取量大。

Cloud de Confiance 負載平衡器會盡可能提供工作階段相依性。如果後端健康狀態檢查狀態改變、新增或移除後端、後端權重改變 (包括啟用或停用加權平衡),或是後端飽和度改變 (以平衡模式測量),都可能導致工作階段相依性中斷。

如果獨特連線的分配相當廣泛,使用工作階段相依性進行負載平衡的效果會很好。合理的大型是指至少是後端數量的數倍。如果只測試少數連線,負載平衡器就無法準確呈現後端之間的用戶端連線分配情形。

根據預設,所有 Cloud de Confiance 負載平衡器都會使用五元組雜湊 (--session-affinity=NONE) 選取後端,如下所示:

  • 封包的來源 IP 位址
  • 封包的來源通訊埠 (如果封包標頭中存在)
  • 封包的目的地 IP 位址
  • 封包的目的地通訊埠 (如果封包標頭中存在)
  • 封包的通訊協定

如要進一步瞭解直通式網路負載平衡器的工作階段相依性,請參閱下列文件:

如要進一步瞭解應用程式負載平衡器的工作階段相依性,請參閱下列文件:

如要進一步瞭解 Proxy 網路負載平衡器的工作階段相依性,請參閱下列文件:

後端服務逾時

大多數負載平衡器都有後端服務逾時。 Cloud de Confiance 預設值為 30 秒。允許的逾時值完整範圍為 1 至 2,147,483,647 秒。

  • 對於使用 HTTP、HTTPS 或 HTTP/2 通訊協定的外部應用程式負載平衡器和內部應用程式負載平衡器,後端服務逾時是 HTTP(S) 流量的要求和回應逾時。

    如要進一步瞭解各負載平衡器的後端服務逾時,請參閱下列文章:

    • 如要瞭解 區域外部應用程式負載平衡器,請參閱「逾時和重試」。
    • 如果是內部應用程式負載平衡器,請參閱「逾時和重試」。
  • 如果是外部 Proxy 網路負載平衡器和內部 Proxy 網路負載平衡器,設定的後端服務逾時是指負載平衡器在沒有任何資料從用戶端或後端傳輸時,保持 TCP 連線開啟的時間長度。如果在這段時間內沒有傳輸任何資料,Proxy 就會關閉連線。

    • 預設值:30 秒
    • 可設定的範圍:1 到 2,147,483,647 秒
  • 對於內部直通式網路負載平衡器和區域外部直通式網路負載平衡器,您可以使用 gcloud 或 API 設定後端服務逾時值,但系統會忽略該值。對於這些直通負載平衡器,後端服務逾時沒有意義。

健康狀態檢查

如果後端服務的後端是執行個體群組或區域性 NEG,則必須有相關的健康狀態檢查

使用 Cloud de Confiance 控制台建立負載平衡器時,您可以在建立負載平衡器時建立健康狀態檢查 (如有需要),也可以參照現有的健康狀態檢查。

使用 Google Cloud CLI 或 API,透過執行個體群組或區域 NEG 後端建立後端服務時,必須參照現有的健康狀態檢查。如要進一步瞭解所需的健康狀態檢查類型和範圍,請參閱「健康狀態檢查總覽」中的負載平衡器指南

詳情請參閱下列文件:

IAP

透過 HTTPS 存取的應用程式可經由 IAP 建立中央授權層,因此,您可以使用應用程式層級的存取控管模型,而非依賴網路層級的防火牆。IAP 支援特定應用程式負載平衡器

IAP 與 Cloud CDN 不相容。無法在同一個後端服務上啟用。

進階流量管理功能

如要瞭解在與負載平衡器相關聯的後端服務和網址對應中設定的進階流量管理功能,請參閱下列文章:

API 和gcloud參考資料

如要進一步瞭解後端服務資源的屬性,請參閱下列參考資料:

後續步驟

請參閱以下關於如何在負載平衡中使用後端服務的說明文件和資訊: