設定可用區性 NEG

本文說明如何設定區域網路端點群組 (NEG)。設定區域 NEG 之前,請先參閱「網路端點群組總覽」。

具有 GCE_VM_IP 個端點的區域 NEG

這些執行個體可用於內部直通式網路負載平衡器和區域外部直通式網路負載平衡器的後端服務。詳情請參閱「區域 NEG 總覽:負載平衡」。

如需端對端範例,請參閱下列內容:

具有 GCE_VM_IP_PORT 個端點的區域 NEG

這些項目可做為下列類型負載平衡器中後端服務的後端:

GCE_VM_IP_PORT區域 NEG 的主要用途是容器原生負載平衡,因此您可以將流量分配給 VM 上容器中執行的微服務。容器原生負載平衡功能可讓負載平衡器直接指定 Pod,並在 Pod 層級 (而非 VM 層級) 做出負載分配決策。

設定容器原生負載平衡的方法有兩種:使用 GKE Ingress 管理的 NEG,或使用獨立 NEG。

如需操作說明,請參閱:

設定可用區 NEG

本頁其餘內容說明如何在建立負載平衡器前後設定區域 NEG。請注意,部分動作不適用於由 Ingress 建立及管理的區域 NEG。

建立區域性網路端點群組

控制台

如要建立可用區網路端點群組,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。
    前往「網路端點群組」頁面
  2. 按一下「Create network endpoint group」(建立網路端點群組)。
  3. 將「網路端點群組類型」設為「網路端點類型:可用區」。
  4. 輸入網路端點群組的「名稱」。
  5. 將「網路端點類型」設為「網路端點群組 (區域性)」。
  6. 根據您使用的負載平衡器類型,選取「端點類型」。
  7. 選取「網路」。
  8. 選取「子網路」。
  9. 選取「區域」。
  10. 如果是只有 GCE_VM_IP_PORT 端點的區域性 NEG,請輸入「預設通訊埠」。
  11. 點選「建立」。

gcloud

建立GCE_VM_IP_PORT可用區 NEG

gcloud compute network-endpoint-groups create NEG_NAME \
    --zone=ZONE \
    --network=NETWORK
    [--subnet=SUBNET]
    [--default-port=DEFAULT_PORT]

在這個指令中,標記的定義如下:

  • NEG_NAME 是新網路端點群組的名稱。區域中的名稱不得重複。
  • ZONE 是建立 NEG 的可用區名稱。
  • NETWORK 是建立 NEG 的網路名稱。如果省略, Google Cloud 會使用名為 default 的網路。
  • SUBNET 是網路端點所屬的子網路名稱。 如果網路是自動模式虛擬私有雲網路,這個標記為選用。如果省略,NEG 會位於所選可用區區域的自動建立子網路中。如果網路是自訂模式虛擬私有雲,或您需要指定手動建立的子網路,則必須使用這個旗標。
  • DEFAULT_PORT 是與 NEG 相關聯的預設通訊埠。這個標記是選用的。如果省略,則所有端點都必須由 IP:通訊埠指定。如果包含 port 部分,則可從端點規格中省略,並假設為預設通訊埠。

建立GCE_VM_IP可用區 NEG

如要建立GCE_VM_IP區域性網路端點群組,您必須指定network-endpoint-type,如下所示: gcloud compute network-endpoint-groups create

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=gce-vm-ip \
    --zone=ZONE \
    --network=NETWORK
    --subnet=SUBNET

在這個指令中,標記的定義如下:

  • NEG_NAME 是新網路端點群組的名稱。名稱在可用區中不得重複。
  • ZONE 是建立 NEG 的可用區名稱。
  • NETWORK 是建立 NEG 的網路名稱。
  • SUBNET 是網路端點所屬的子網路名稱。

將端點新增至網路端點群組

控制台

如何將端點新增至網路端點群組:

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。
    前往「網路端點群組」頁面
  2. 按一下您要新增端點的網路端點群組「名稱」。系統會顯示「網路端點群組詳細資料」頁面。
  3. 在「Network endpoints in this group」(這個群組中的網路端點) 區段中,按一下 [Add network endpoint] (新增網路端點]。畫面會出現「Add network endpoint」(新增網路端點) 頁面。
  4. 選取某個 VM 執行個體以將其內部 IP 位址新增為網路端點,然後按一下 [Add] (新增)。您會看到「網路介面」、可用區、子網路,以及指派給端點的 VM 介面內部 IP 位址。
  5. 如果只有 GCE_VM_IP_PORT 端點,請按照下列步驟操作:
    1. 輸入新網路端點的 IP 位址。
    2. 選取「連接埠類型」。
      • 如果選取「預設」,端點會為網路端點群組中的所有端點使用預設通訊埠。
      • 如果您選取 [Custom] (自訂),請輸入端點要使用的「Port number」(通訊埠編號)。
  6. 如要新增更多端點,請按一下 [Add network endpoint] (新增網路端點),然後重複執行步驟 5 和 6。
  7. 新增所有需要的端點後,按一下「建立」。

gcloud

將端點新增至GCE_VM_IP區域 NEG

如要將端點新增至GCE_VM_IP區域 NEG,請執行 gcloud compute network-endpoint-groups update 指令。您可以將 IPv4 和 IPv6 端點新增至GCE_VM_IP區域 NEG。

將 IPv4 端點新增至網路端點群組:

gcloud compute network-endpoint-groups update NEG_NAME \
    --zone=ZONE \
    --add-endpoint 'instance=INSTANCE_NAME,[ip=IPv4_ADDRESS]' \
    [--add-endpoint ...]

將 IPv6 端點新增至網路端點群組:

  gcloud compute network-endpoint-groups update NEG_NAME \
      --zone=ZONE \
      --add-endpoint 'instance=INSTANCE_NAME,[ipv6=IPv6_ADDRESS]' \
      [--add-endpoint ...]

更改下列內容:

  • NEG_NAME:NEG 名稱
  • ZONE:NEG 所在的可用區名稱
  • INSTANCE_NAME:IP 位址所屬的 VM 名稱。
  • IPv4_ADDRESS:網路介面的主要內部 IPv4 位址
  • IPv6_ADDRESS:指派給 VM 網路介面的 /96 範圍中的第一個 IPv6 位址 (/128)

如果省略 IP 位址,系統會根據 NEG 子網路中的網路介面選取 IP 位址。如要進一步瞭解所選 IP 位址,請參閱「區域 NEGGCE_VM_IP 的端點規格」。

將端點新增至GCE_VM_IP_PORT區域 NEG

如要將端點新增至GCE_VM_IP_PORT區域 NEG,請執行 gcloud compute network-endpoint-groups update 指令。您可以將 IPv4、IPv6 和雙重堆疊端點新增至 GCE_VM_IP_PORT 地區 NEG。

將 IPv4 端點新增至網路端點群組:

  gcloud compute network-endpoint-groups update NEG_NAME \
      --zone=ZONE \
      --add-endpoint 'instance=INSTANCE_NAME,[ip=IPv4_ADDRESS],[port=PORT]' \
      [--add-endpoint ...]

將 IPv6 端點新增至網路端點群組:

  gcloud compute network-endpoint-groups update NEG_NAME \
      --zone=ZONE \
      --add-endpoint 'instance=INSTANCE_NAME,[ipv6=IPv6_ADDRESS],[port=PORT]' \
      [--add-endpoint ...]

將雙堆疊端點新增至網路端點群組:

gcloud compute network-endpoint-groups update NEG_NAME \
    --zone=ZONE \
    --add-endpoint 'instance=INSTANCE_NAME,[ip=IPv4_ADDRESS],[ipv6=IPv6_ADDRESS],[port=PORT]' \
    [--add-endpoint ...]

更改下列內容:

  • NEG_NAME:NEG 名稱
  • ZONE:NEG 所在的可用區名稱
  • INSTANCE_NAME:IP 位址所屬的 VM 名稱
  • IPv4_ADDRESS:網路介面的主要內部 IPv4 位址,或是指派給 VM 網路介面的別名 IP 位址範圍中的內部 IPv4 位址
  • IPv6_ADDRESS:指派給 VM 網路介面的 /96 範圍中的任何 IPv6 位址 (/128)
  • PORT:要新增的網路端點通訊埠。如果 NEG 中指定了預設通訊埠,則通訊埠為選填。如果可用區 NEG 具有 GCE_VM_IP 端點,則不支援這個欄位。

    如果省略 IP 位址,系統會根據 NEG 子網路中的網路介面選取 IP 位址。如要進一步瞭解所選 IP 位址,請參閱「GCE_VM_IP_PORT 區域 NEG 的端點規格」。

在下列範例中,IPv4 端點會新增至 GCE_VM_IP_PORT 地區 NEG:

gcloud compute network-endpoint-groups update my-lb-neg \
    --zone=asia-southeast1-a \
    --add-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80'

詳情請參閱「區域網路端點群組總覽」。

將可用區 NEG 新增至後端服務

控制台

如何將網路端點群組新增至後端服務:

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
    前往「Load balancing」(負載平衡) 頁面
  2. 按一下您要編輯後端服務的負載平衡器名稱。
  3. 在「Load balancer details」(負載平衡器詳細資料) 頁面中,按一下「Edit」(編輯) 。
  4. 在「Edit load balancer」(編輯負載平衡器) 頁面上,按一下 [Backend configuration] (後端設定)。
  5. 在「後端設定」頁面中,按一下「編輯」。
  6. 按一下 [Add backend] (新增後端)。
  7. 選取「區域性網路端點群組」,然後按一下「完成」。
  8. 按一下「Update」。

gcloud

如何將 NEG 新增至後端服務:

gcloud compute backend-services add-backend BACKEND_SERVICE \
     --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
     --network-endpoint-group-zone=ZONE

舉例來說,如要將 GCE_VM_IP_PORT 區域 NEG 新增至後端服務:

gcloud compute backend-services add-backend my-lb \
   --network-endpoint-group my-lb-neg \
   --network-endpoint-group-zone=asia-southeast1-a \
   --global \
   --balancing-mode=RATE \
   --max-rate-per-endpoint=5

從後端服務中移除 NEG

控制台

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
    前往「Load balancing」(負載平衡) 頁面
  2. 按一下您要編輯後端服務的負載平衡器名稱。
  3. 在「Load balancer details」(負載平衡器詳細資料) 頁面中,按一下「Edit」(編輯) 。
  4. 在「Edit load balancer」(編輯負載平衡器) 頁面上,按一下 [Backend configuration] (後端設定)。
  5. 在「後端設定」頁面中,找出要移除 NEG 的後端服務,然後按一下「編輯」圖示 。
  6. 在「後端」部分中,找到要移除的 NEG,然後點選該 NEG 的垃圾桶圖示。
  7. 按一下「Update」。

gcloud

如何從後端服務移除 NEG:

gcloud compute backend-services remove-backend BACKEND_SERVICE \
    --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
    --network-endpoint-group-zone=NETWORK_ENDPOINT_GROUP_ZONE

例如:

gcloud compute backend-services remove-backend my-lb \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=asia-southeast1-a

從網路端點群組中移除端點

從負載平衡 NEG 移除網路端點時,會根據後端服務中指定的排除參數來觸發連線排除。如果多個後端服務均參照相同的 NEG,則會套用所有後端服務的最大排除間隔。

主控台

如要從網路端點群組移除端點:

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。
    前往「網路端點群組」頁面
  2. 點選您要從中刪除端點的網路端點群組「名稱」。畫面會顯示「網路端點群組詳細資料」頁面。
  3. 選取要刪除的網路端點,然後按一下 [Remove endpoint] (移除端點)。

gcloud

如要從網路端點群組移除端點:

gcloud compute network-endpoint-groups update NEG_NAME \
--zone=ZONE \
--remove-endpoint 'instance=INSTANCE_NAME,[ip=IP],[port=PORT]' \
[--remove-endpoint ...]

舉例來說,如要從 GCE_VM_IP_PORT 地區 NEG 移除端點:

gcloud compute network-endpoint-groups update my-lb-neg \
     --remove-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80' \
     --zone=asia-southeast1-a

列出網路端點群組

控制台

如要查看網路端點群組清單,請前往 Google Cloud 控制台的「網路端點群組」頁面。
前往「網路端點群組」頁面

gcloud

如何列出網路端點群組:

gcloud compute network-endpoint-groups list

說明特定網路端點群組

控制台

如何取得特定網路端點群組的詳細資料:

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。
    前往「網路端點群組」頁面
  2. 點選您要查看詳細資料的網路端點群組名稱。

gcloud

如何取得特定網路端點群組的詳細資料:

gcloud compute network-endpoint-groups describe NEG_NAME \
    --zone=ZONE

更改下列內容:

  • NEG_NAME:網路端點群組的名稱
  • ZONE:建立 NEG 的可用區名稱 (選用)。

舉例來說,下列 gcloud 指令會列出網路端點群組 my-lb-neg 的相關資訊。

gcloud compute network-endpoint-groups describe my-lb-neg \
    --zone=asia-southeast1-a

指令輸出結果如下:

    creationTimestamp: '2018-04-09T14:51:34.381-07:00'
    id: '5260475207627726473'
    kind: compute#networkEndpointGroup
    loadBalancer:
      defaultPort: 80
      network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/default
      zone: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/asia-southeast1-a

移除網路端點群組

如果已將網路端點群組附加至後端服務,則無法予以刪除。刪除 NEG 之前,請確保已將其從後端服務卸離。

如果刪除 VM,則會立即從 NEG 移除 VM 上的所有網路端點,並關閉所有連線。刪除後端服務之後,如果刪除 NEG,則會一併移除 NEG 中沒有連線排除的所有端點。

主控台

如何從後端服務移除網路端點群組:

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。
    前往「Load balancing」(負載平衡) 頁面
  2. 按一下您要編輯後端服務的負載平衡器名稱。
  3. 在「Load balancer details」(負載平衡器詳細資料) 頁面中,按一下「Edit」(編輯) 。
  4. 在「Edit load balancer」(編輯負載平衡器) 頁面上,按一下 [Backend configuration] (後端設定)。
  5. 在「後端設定」頁面中,找出要移除 NEG 的後端服務,然後按一下「編輯」圖示 。
  6. 在「後端」部分中,找到要移除的 NEG,然後點選該 NEG 的垃圾桶圖示。
  7. 按一下「Update」。

如何刪除網路端點群組:

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。
    前往「網路端點群組」頁面
  2. 找出您要刪除的網路端點群組。
  3. 點選該資料列中的垃圾桶圖示。

gcloud

如何從後端服務移除網路端點群組:

gcloud compute backend-services remove-backend BACKEND_SERVICE \
     --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
     --network-endpoint-group-zone=ZONE

如何刪除網路端點群組:

gcloud compute network-endpoint-groups delete NEG_NAME \
    --zone=ZONE

例如:

gcloud compute backend-services remove-backend my-neg-backend \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=southeast1-a
gcloud compute network-endpoint-groups delete my-lb-neg \
    --zone=asia-southeast1-a

列出網路端點群組中的端點

控制台

如何查看網路端點群組中的端點清單:

  1. 前往 Google Cloud 控制台的「網路端點群組」頁面。
    前往「網路端點群組」頁面
  2. 點選您要從中刪除端點的網路端點群組「名稱」。您會看到「網路端點群組詳細資料」頁面,其中列出端點群組的端點。
  3. 如要篩選端點,請在「這個群組中的網路端點」下方的文字欄位中建立鍵/值組合。

gcloud

如何列出網路端點群組中的所有網路端點:

gcloud compute network-endpoint-groups list-network-endpoints NEG_NAME \
     --zone=ZONE

列出網路端點群組中的端點時,可自訂篩選條件

您可以使用自訂篩選器,限制列出網路端點群組中的哪些端點。自訂篩選功能僅適用於 REST API。您無法透過 Google Cloud 控制台或 gcloud 指令列介面使用自訂篩選條件。

詳情請參閱方法 networkEndpointGroups.listNetworkEndpoints 的說明文件。

健康狀態檢查網路端點

採用區域 NEG 後端的後端服務必須使用健康狀態檢查,且通訊埠規格必須符合下列條件:

  • 固定 (編號) 通訊埠 (--port)
  • 設定為使用網路端點的供應通訊埠 (--use-serving-port)

以下範例會建立 HTTP 健康狀態檢查,並使用網路端點的服務通訊埠和 --use-serving-port 旗標。請注意,--use-serving-port 旗標是透過 gcloud compute health-checks create 實作,而非 gcloud compute health-checks update。

gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME
    --use-serving-port

您無法搭配區域 NEG 後端使用舊版健康狀態檢查。詳情請參閱「健康狀態檢查概念」。