區域性網路端點群組簡介

網路端點群組 (NEG) 是一項設定物件,可用來指定一組後端端點或服務。區域 NEG 為區域資源,代表單一子網路中 Google Cloud 資源的 IP 位址或 IP 位址與通訊埠組合集合。

NEG 之所以實用,還有另一個原因:您可以只建立代表「軟體服務」的 IP 位址和通訊埠的邏輯群組,而不必建立整個 VM 的邏輯群組。其他自動化調度管理服務 (如 Apache MesosCloud Foundry) 代管微服務 (在 VM 中執行) 的 IP 位址,也可以做為端點。 Google Cloud

如要進一步瞭解其他 NEG 類型,請參閱:

區域性 NEG 分為兩種類型,取決於組成 NEG 的網路端點類型。兩種區域 NEG 支援不同的用途和負載平衡器類型。

含有 GCE_VM_IP 端點的 NEG

直通式網路負載平衡器支援具有 GCE_VM_IP 端點的可用區 NEG。這些可用區 NEG 包含一或多個端點,這些端點會使用 Compute Engine VM 網路介面的主要內部 IPv4 位址表示。

雖然 Google Cloud 會使用 IP 位址代表端點,但 GCE_VM_IP 端點的用途是識別網路介面本身。網路介面必須位於 NEG 的子網路中。

由於 GCE_VM_IP 端點會識別網路介面,因此您無法指定具有 GCE_VM_IP 端點的通訊埠。

這類端點只能在內部直通式網路負載平衡器和外部直通式網路負載平衡器的後端服務中做為後端使用。

含有 GCE_VM_IP_PORT 端點的 NEG

這些區域 NEG 包含下列一或多個 IP 位址或 IP 位址和目的地通訊埠組合:

  • 虛擬機器網路介面的主要內部 IPv4 位址
  • VM 網路介面的主要內部 IPv4 位址,加上目的地連接埠號碼
  • 從別名 IP 位址範圍指派給 VM 網路介面的內部 IPv4 位址
  • 從指派給 VM 網路介面的別名 IP 位址範圍中取得的內部 IPv4 位址,加上目的地連接埠號碼

包含 GCE_VM_IP_PORT 端點的網路介面必須位於 NEG 的子網路中。如果您從 GCE_VM_IP_PORT 端點省略通訊埠編號,Google Cloud 會使用 NEG 的端點預設通訊埠編號。

因為這些區域 NEG 後端可讓您指定 IP 位址和通訊埠,您可以精細地將流量發布到在 VM 執行個體「內部」執行的應用程式或容器,也就是容器原生負載平衡。GKE 會使用 GCE_VM_IP_PORT 端點執行以下操作:

您可以建立使用區域性 NEG 的自行管理負載平衡器,其 GCE_VM_IP_PORT 端點由 GKE 管理。詳情請參閱「透過獨立的區域 NEG 使用容器原生負載平衡功能」。

應用程式負載平衡器和 Proxy 網路負載平衡器支援使用 GCE_VM_IP_PORT 端點的可用區 NEG。

端點規格

建立 NEG 時,您需要選取區域、網路和子網路。每個端點 IP 位址都必須與區域 NEG 位於同一個子網路。

如果您選取的網路為自動模式虛擬私人雲端網路,就不必指定子網路。然而,子網路仍會與區域 NEG 建立關聯。在建立區域 NEG 時,如果指定了自動模式虛擬私有雲網路,卻沒有指定子網路,其使用的子網路,就是在您選取的區域 NEG 所在地區內自動建立的子網路。

建立 NEG (GCE_VM_IPGCE_VM_IP_PORT) 時,您會指定所建立區域 NEG 的類型,這會決定 NEG 支援的端點類型。

GCE_VM_IP_PORT 區域性 NEG

GCE_VM_IP_PORT 區域性 NEG 必須符合下列條件:

  • 您必須為每個 VM 端點指定名稱。

  • 每個端點 VM 都必須位於與 NEG 相同的區域。

  • NEG 中的每個端點都必須是不重複的 IP 位址與通訊埠組合。不重複的端點 IP 位址和通訊埠組合可供多個 NEG 參照。

  • 每個端點 VM 都必須在與 NEG 相同的虛擬私有雲網路中,具備網路介面。端點 IP 位址必須與 NEG 中指定的子網路相關聯。

  • 每個 NEG 最多支援每個 NEG 的端點數上限。端點可分散至多個獨立的 VM,或全部位於單一 VM 上。

對於 GCE_VM_IP_PORT NEG,新增端點時,您可以選擇指定 IP 位址和通訊埠、只指定 IP 位址,或不指定任何項目:

  • 如果您指定 IP 位址和通訊埠,IP 位址可以是網路介面上 VM 的主要內部 IP 位址,或是網路介面上的別名 IP。您可以選擇通訊埠。

  • 如果您只指定 IP 位址,該 IP 位址可以是網路介面上 VM 的主要內部 IP 位址,或是網路介面上的別名 IP 位址。使用的通訊埠是 NEG 的預設通訊埠。

  • 如果您未指定這兩項, Google Cloud 會選取 VM 的主要內部 IP 位址,並使用 NEG 的預設連接埠。

GCE_VM_IP 區域性 NEG

GCE_VM_IP 區域性 NEG 必須符合下列條件:

  • 您必須為每個 VM 端點指定名稱。

  • 每個端點 VM 都必須位於與 NEG 相同的區域。

  • GCE_VM_IP NEG 中的每個端點都必須是不重複的 IP 位址。一個不重複的端點 IP 位址可以由多個 NEG 參照。

  • 每個 GCE_VM_IP NEG 都會與網路和子網路相關聯。新增端點時,您可以選擇是否指定 IP 位址。如果指定 IP 位址,則必須設為已連結 VM 執行個體的主要內部 IP 位址,且該 IP 位址必須與 NEG 的子網路相符。只要多個網路介面 VM 執行個體的任何網路介面的主要內部 IP 位址與 NEG 子網路相符,即可新增至 NEG。

  • 每個 NEG 最多支援每個 NEG 的端點數上限。端點必須分散至所有獨立的 VM。單一 VM 無法放置多個端點,因為 VM 無法與同一個子網路建立多個網路介面關聯。

使用區域 NEG 進行負載平衡

區域 NEG 可在負載平衡器中做為後端服務的後端使用。當您使用區域 NEG 做為後端服務的後端時,該後端服務中的其他所有後端也必須是相同類型的區域 NEG (全部為 GCE_VM_IPGCE_VM_IP_PORT)。您無法在同一個後端服務中,同時使用執行個體群組和區域 NEG 做為後端。

您可以將同一個網路端點新增至多個區域 NEG。您可以使用相同的區域 NEG 做為多個後端服務的後端。

GCE_VM_IP_PORT 區域 NEG 可根據後端服務通訊協定,使用 RATE 平衡模式CONNECTION 平衡模式。支援的負載平衡器需要定義目標容量

GCE_VM_IP 區域 NEG 必須使用 CONNECTION 平衡模式。此外,內部直通式網路負載平衡器和外部直通式網路負載平衡器不支援目標容量設定。

直通式網路負載平衡器

只有內部直通式網路負載平衡器和外部直通式網路負載平衡器,才可使用含有 GCE_VM_IP 端點的可用區 NEG 做為後端服務的後端。

如要瞭解 NEG 與 GCE_VM_IP 端點的主要用途,請參閱以下各節。

靈活的端點分組

與執行個體群組一樣,您可以使用相同的 NEG 做為多個傳送網路負載平衡器的後端。與執行個體群組不同,NEG 端點可以是多個 NEG 的成員,而每個 NEG 都可以做為一或多個傳送網路負載平衡器的後端。與執行個體群組相比,您不會受到「VM 執行個體只能屬於單一執行個體群組」的限制。

下圖顯示內部直通式網路負載平衡器架構範例,其中包含共用 VM。

內部直通式網路負載平衡器,其中包含重疊的 `GCE_VM_IP` 可用區 NEG。
內部直通式網路負載平衡器,其中可用區 NEG 重疊 (按一下可放大)。

將非 nic0 介面做為後端端點

具有 GCE_VM_IP 端點的可用區 NEG 可將負載平衡功能延伸至 VM 的非 nic0 網路介面。當您整合第三方機器 VM 時,這項功能就非常實用,因為這些 VM 通常會為管理作業保留 nic0。有了 GCE_VM_IP NEG,同一個 VM 的任何非 nic0 網路介面都可以連結至直通式網路負載平衡器的 NEG 後端。

GKE 子集

GKE 會使用 GCE_VM_IP 可用區 NEG 和子集,以以下方式改善內部直通式網路負載平衡器的擴充性:

如果未進行子集,GKE 會為每個區域建立一個非代管執行個體群組,其中包含該區域中所有節點集區的叢集節點。這些區域執行個體群組會用於一或多個內部 LoadBalancer 服務的後端 (以及不使用 NEG 的外部 Ingress)。

使用子集時,GKE 會為每個內部 LoadBalancer Service 建立 GCE_VM_IP 可用區 NEG。同一個端點可同時是多個區域 NEG 的成員。與執行個體群組不同, Google Cloud 可將負載平衡功能擴展至包含相同端點的多個區域 NEG。

在含有 250 個以上節點的叢集中,子集可更有效率地將流量分散至內部 LoadBalancer 服務。舉例來說,一個 300 節點的 GKE 叢集可能會有一個內部 LoadBalancer 服務,其中 NEG 有 25 個節點,因為該服務有 25 個服務 Pod。並非所有 300 個節點都需要新增至這項服務的執行個體群組後端。

請注意,NEG、轉送規則、後端服務和其他 Google Cloud 網路資源的配額仍會套用。

詳情請參閱「使用內部直通式網路負載平衡器子集」。

應用程式負載平衡器和 Proxy 網路負載平衡器

下圖顯示的是使用 GCE_VM_IP_PORT 端點的區域 NEG 做為後端的負載平衡器設定元件:

負載平衡中的區域性網路端點群組。
負載平衡中的區域性網路端點群組 (按一下可放大)。

如要進一步瞭解這些負載平衡器的架構需求,請參閱:

GCE_VM_IP_PORT 區域 NEG 的主要用途是容器原生負載平衡,可讓您將流量直接分配給在 VM 上執行的容器,例如 GKE 叢集中的 Pod IP 位址。

容器原生負載平衡可讓負載平衡器直接指定 Pod,並在 Pod 層級 (而非 VM 層級) 做出負載分配決策。

以下範例說明負載平衡器如何在 VM 容器中,將流量分配給執行微服務。這些 VM 設定為使用子網路的別名 IP 範圍,而這些範圍是容器使用的位址。

使用容器負載平衡區域性網路端點群組。
負載平衡器區域性網路端點群組與容器 (按一下可放大)。

您可以透過兩種方式設定容器原生負載平衡功能:使用由 GKE Ingress 管理的 NEG,或使用獨立的 NEG。

限制

  • 舊版網路無法使用區域 NEG。
  • 如果某個後端服務使用 NEG 做為後端,就不能同時使用執行個體群組做為後端。

GCE_VM_IP 可用區 NEG 的限制:

  • 只有內部直通式網路負載平衡器和外部直通式網路負載平衡器支援含有 GCE_VM_IP 端點的可用區 NEG。
  • GCE_VM_IP 區域 NEG 不支援 default-port 屬性。

配額

  • 如要瞭解 NEG 配額 (例如每個專案的 NEG、每個後端服務的 NEG 和每個 NEG 的端點),請參閱負載平衡配額頁面

後續步驟