區域性網路端點群組簡介

網路端點群組 (NEG) 是網路端點的集合。NEG 中的每個端點都必須指向 VM 網路介面的專屬 IP 位址。一個網路端點只能屬於一個網路端點群組。單一 IP 位址無法由 NEG 中的多個端點參照。不過,不同 NEG 中的端點可以參照單一 IP 位址。下圖以風格化的方式呈現這個概念。在圖中,「IP 位址 - 2」和「IP 位址 - 3」是由位於不同網路端點群組的網路端點參照。

網路端點群組是網路端點的集合。
網路端點群組 (按一下可放大)。

區域 NEG 是區域資源,代表單一虛擬私有雲子網路中 Google Cloud 資源的 IP 位址或 IP 位址和通訊埠組合集合。區域 NEG 可讓您執行下列操作:

  • 將封包路由至 VM 執行個體的任何網路介面,包括 nic0 以外的介面。這樣一來,您就能建立代表軟體服務的 IP 位址和連接埠邏輯群組,而非整個 VM。

  • 建立彈性 IP 位址集,將 IP 位址附加至多個 NEG,每個 NEG 可以有不同的 IP 位址集,但可能重疊。

視構成 NEG 的網路端點類型而定,區域 NEG 分成兩種類型。這兩種區域 NEG 支援不同的用途和負載平衡器類型。

具有 GCE_VM_IP 個端點的 NEG

這些可用區 NEG 包含一或多個 GCE_VM_IP 端點,每個端點都有下列其中一個 IP 位址:

  • Compute Engine VM 網路介面的主要內部 IPv4 位址。
  • 指派給 Compute Engine VM 網路介面的 /96 範圍中,第一個 IPv6 位址 (/128)。

使用 GCE_VM_IP 端點時,您可以選取網路介面的主要內部 IPv4 位址或第一個 IPv6 位址,這與直接選取網路介面類似,可提供一定程度的精細度。

GCE_VM_IP 端點無法指向別名 IPv4 範圍的 IP 位址。GCE_VM_IP 端點參照的網路介面必須與 NEG 位於相同的子網路。

如下表所示,GCE_VM_IP 端點可以參照VM 的網路介面,其堆疊類型可以是僅限 IPv4、僅限 IPv6 或雙重堆疊。您無法將同時為 IPv4 和 IPv6 的端點 (雙重堆疊端點) 新增至GCE_VM_IP區域 NEG。換句話說,建立 GCE_VM_IP 端點時,只能使用單一 IP 位址。

網路端點 相容的 VM 網路介面
IPv4 端點 (主要) 僅支援 IPv4 的介面
IPv4 端點 (主要) 雙堆疊介面
IPv6 端點 (範圍內的第一個) (預先發布版) 僅支援 IPv6 的介面
IPv6 端點 (範圍內的第一個) (預先發布版) 雙堆疊介面

由於 GCE_VM_IP 端點會識別網路介面,因此無法使用 GCE_VM_IP 端點指定通訊埠。

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

具有 GCE_VM_IP_PORT 個端點的 NEG

這些可用區 NEG 包含一或多個 GCE_VM_IP_PORT 端點,每個端點都具有下列其中一種 IP 位址組合,以及目的地通訊埠:

  • 主要 IPv4 位址 + 通訊埠:VM 網路介面的主要內部 IPv4 位址,加上目的地通訊埠號碼

  • 別名 IPv4 位址 + 通訊埠:指派給 VM 網路介面的別名 IP 位址範圍中的內部 IPv4 位址,加上目的地通訊埠號碼

  • 主要 IPv4 位址 + 任何 IPv6 位址 + 通訊埠:VM 網路介面的主要內部 IPv4 位址,以及指派給 VM 網路介面的 /96 範圍中的任何 IPv6 位址 (/128),加上目的地通訊埠號碼

  • 別名 IPv4 位址 + 任何 IPv6 位址 + 通訊埠:指派給 VM 網路介面的別名 IP 位址範圍中的內部 IPv4 位址,以及指派給 VM 網路介面的 /96 範圍中的任何 IPv6 位址 (/128),加上目的地通訊埠號碼

  • IPv6 位址 + 通訊埠:指派給 VM 網路介面的 /96 範圍中的任何 IPv6 位址 (/128),加上目的地通訊埠號碼

相較於 GCE_VM_IP 端點,使用 GCE_VM_IP_PORT 端點時,您不僅可以選取網路介面的主要 IP 位址,還能選取任何 IP 位址,因此 GCE_VM_IP_PORT 端點提供的精細程度,比單純選取網路介面更高。

GCE_VM_IP_PORT 端點參照的網路介面必須與 NEG 位於相同的子網路。如果從端點省略通訊埠號碼,GCE_VM_IP_PORT Google Cloud 會使用端點的 NEG 預設通訊埠號碼。

如下表所示,GCE_VM_IP_PORT 端點可以參照VM 的網路介面,其堆疊類型可以是僅限 IPv4、僅限 IPv6 或雙重堆疊。

網路端點 相容的 VM 網路介面
IPv4 端點 (主要或別名) 僅支援 IPv4 的介面
IPv4 端點 (主要或別名) 雙堆疊介面
IPv6 端點 (/96 範圍內的任何端點) (預先發布版) 僅支援 IPv6 的介面
IPv6 端點 (/96 範圍內的任何端點) (預先發布版) 雙堆疊介面

IPv4 (主要或別名) 和 IPv6 (來自 /96 範圍的任何位址) 端點

也稱為雙堆疊端點

雙堆疊介面

由於這些區域 NEG 後端可讓您指定 IP 位址和連接埠,因此您可以在 VM 執行個體內執行的應用程式或容器之間,精細地分配流量,也就是容器原生負載平衡。GKE 會使用 GCE_VM_IP_PORT 端點執行下列作業:

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

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

端點規格

建立 NEG 時,請選取區域、網路和子網路。

如果選取的網路是自動模式虛擬私有雲網路,可以省略指定子網路。不過,子網路仍會與區域 NEG 建立關聯。如果您指定自動模式虛擬私有雲網路,但建立區域 NEG 時未指定子網路,則系統會使用在區域中自動建立的子網路,該區域包含您為區域 NEG 選取的可用區。

將端點新增至 NEG 時,對應的執行個體網路介面必須位於 NEG 的子網路中。如果只指定執行個體名稱,系統會自動選取該子網路中的執行個體介面。如果同時指定 IP 位址,該位址必須屬於特定介面。如果是多 NIC 執行個體,您必須使用與介面子網路相關聯的 NEG,才能透過該介面接收流量。在所有情況下,只有當 NEG 子網路中的介面是負載平衡器目標介面時,附加作業才會成功。

建立 NEG 時 (GCE_VM_IP 或 GCE_VM_IP_PORT),您會指定建立的可用區 NEG 類型。這會決定 NEG 支援的端點類型。

GCE_VM_IP 區域性 NEG

在指定的 NEG 中,每個 GCE_VM_IP 端點實際上代表一個網路介面。

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

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

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

  • NEG 中的每個端點都必須是專屬 IP 位址。GCE_VM_IP多個 NEG 可以參照同一個端點 IP 位址。

  • 每個 GCE_VM_IP NEG 一律會與網路和子網路建立關聯。只要多 NIC VM 執行個體的任何網路介面 IP 位址與 NEG 位於相同子網路,即可新增至 NEG。

  • 每個 NEG 最多支援每個 NEG 的端點數上限。端點必須分配給所有不重複的 VM。單一 VM 無法有多個端點,因為 VM 只能有一個與相同子網路建立關聯的網路介面。

為 GCE_VM_IP NEG 新增端點時,您可以選擇是否指定 IP 位址:

  • 如果指定 IP 位址,則必須設為 VM 網路介面的主要內部 IPv4 位址或第一個 IPv6 位址 (/128)。

  • 如果省略 IP 位址,系統會根據 NEG 子網路中的網路介面選取 IP 位址。如果端點參照僅支援 IPv4 或雙重堆疊的網路介面,系統會選取 VM 網路介面的主要內部 IPv4 位址做為端點 IP 位址。如果端點參照僅支援 IPv6 的網路介面,系統會選取 VM 網路介面的第一個 IPv6 位址 (/128) 做為端點 IP 位址。

    請注意,指定 IP 位址是多餘的,因為與 NEG 相關聯的子網路中只能有一個網路介面。

GCE_VM_IP_PORT 區域性 NEG

在指定的 NEG 中,每個 GCE_VM_IP_PORT 端點不僅可代表網路介面的主要 IP 位址,也可代表網路介面的任何 IP 位址。

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

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

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

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

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

  • 每個 NEG 最多支援每個 NEG 的端點數上限。端點可分散在多個不重複的 VM 中,也可全部位於一個 VM 上。

為 GCE_VM_IP_PORT NEG 新增端點時,您可以選擇指定 IP 位址和通訊埠、僅指定 IP 位址,或兩者都不指定:

  • 如果您指定 IP 位址和連接埠,IP 位址可以是 IPv4 位址、IPv6 位址,或同時是 IPv4 和 IPv6 位址。使用的通訊埠由您選擇。如要瞭解 IP 位址和通訊埠的不同組合,請參閱本文的「具有 GCE_VM_IP_PORT 端點的 NEG」一節。

    IPv4 位址可以是主要內部 IPv4 位址,也可以是網路介面上別名 IP 位址範圍內的內部 IPv4 位址。IPv6 位址可以是分配給 VM 網路介面的 /96 範圍中的任何 IPv6 位址 (/128)。使用的通訊埠由您選擇。

  • 如果只指定 IP 位址,則 IP 位址可以是 IPv4 位址、IPv6 位址,或同時是 IPv4 和 IPv6 位址。使用的通訊埠是端點的 NEG 預設通訊埠編號。

    IPv4 位址可以是主要內部 IPv4 位址,也可以是網路介面上別名 IP 位址範圍內的內部 IPv4 位址。IPv6 位址可以是從指派給 VM 網路介面的 /96 範圍中,選取的任何 IPv6 位址 (/128)。使用的通訊埠是端點的 NEG 預設通訊埠編號。

  • 如果省略 IP 位址和連接埠,系統會根據 NEG 子網路中的網路介面選取 IP 位址。如果端點參照僅支援 IPv4 或雙重堆疊的網路介面,系統會選取 VM 網路介面的主要內部 IPv4 位址做為端點 IP 位址。如果端點參照僅支援 IPv6 的網路介面,系統會選取 VM 網路介面的第一個 IPv6 位址 (/128) 做為端點 IP 位址。

    通訊埠: Google Cloud 會使用端點的 NEG 預設通訊埠編號。

使用可用區 NEG 進行負載平衡

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

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

具有 GCE_VM_IP_PORT 端點的區域 NEG 會由 Proxy 型負載平衡器使用,平衡模式如「應用程式負載平衡器和 Cloud Service Mesh 的平衡模式」和「Proxy 網路負載平衡器的平衡模式」中所述。

直通式負載平衡器會使用具有 GCE_VM_IP 端點的可用區 NEG,平衡模式如「直通式網路負載平衡器的平衡模式」一文所述。

直通式網路負載平衡器

如要瞭解 NEG 的主要用途,請參閱下列各節。GCE_VM_IP

彈性端點分組

與執行個體群組類似,您可以將同一個 NEG 做為多個直通網路負載平衡器的後端。與執行個體群組不同,NEG 端點可以成為多個 NEG 的成員,而每個 NEG 都可以做為一或多個直通網路負載平衡器的後端。與執行個體群組相比,您不會受到 VM 執行個體只能屬於單一執行個體群組的限制。

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

具有重疊 `GCE_VM_IP` 可用區 NEG 的內部直通式網路負載平衡器。
具有重疊可用區 NEG 的內部直通式網路負載平衡器 (按一下即可放大)。

非 nic0 介面做為後端端點

區域 NEG 可讓負載平衡器將流量傳送至 VM 的非nic0網路介面。與通常會保留 nic0 以進行管理作業的第三方裝置 VM 整合時,這項功能就非常實用。非 nic0 網路介面也可以附加至直通式網路負載平衡器的 NEG 後端。不過,對於多 NIC 執行個體,只有負載平衡器目標介面可以附加至 NEG 後端。

如需詳細資訊,請參閱下列文件:

GKE 子設定

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

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

透過子集化,GKE 會為每個內部 LoadBalancer 服務建立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 使用 Kubernetes Ingress (建議)

    將 NEG 與 Ingress 搭配使用時,Ingress 控制器會協助建立 HTTP(S) 負載平衡器的所有層面。包括建立虛擬 IP 位址、轉送規則、健康狀態檢查、防火牆規則等。如要瞭解如何設定,請參閱「透過 Ingress 進行容器原生負載平衡」。

    建議使用 Ingress 將 NEG 用於容器原生負載平衡,因為 Ingress 具有多項功能,可簡化 NEG 管理作業。或者,您也可以手動建立 Proxy 負載平衡器,但仍由 GKE 管理 NEG 端點成員資格,如下一點 (獨立 NEG) 所述。

    如需透過 Ingress 設定負載平衡器的操作說明,請參閱「透過 Ingress 使用容器原生負載平衡功能」。

  • 獨立式廣告 NEG

    獨立 NEG 可讓 GKE 叢集建立區域 NEG,並使用代表 Pod IP 位址和容器通訊埠的 GCE_VM_IP_PORT 端點,同時讓您彈性地在 GKE 外部設定負載平衡器元件。

    如需在 GKE 中使用獨立可用區 NEG 的範例,請參閱:

限制

  • 您無法將區域 NEG 與舊版網路搭配使用。
  • 使用 NEG 做為後端的後端服務,無法同時使用執行個體群組做為後端。
  • 您可以將附加至相同虛擬私有雲網路的多個網路介面執行個體,新增為區域 NEG 的端點。不過,在附加至相同虛擬私有雲網路的一組網路介面中,只有符合接收負載平衡流量條件的網路介面,才能由端點參照。
  • GCE_VM_IP 可用區 NEG 不支援 default-port 屬性。

配額

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

後續步驟