設定可用區性 NEG

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

具有 GCE_VM_IP 端點的可用區 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 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
    前往「Network Endpoint Groups」(網路端點群組) 頁面
  2. 按一下「Create network endpoint group」(建立網路端點群組)。
  3. 在「Network endpoint group type」(網路端點群組類型) 部分,選取「Network endpoint type: Zonal」(網路端點類型:可用區)。
  4. 輸入網路端點群組的「名稱」。
  5. 在「Network endpoint type」(網路端點類型) 部分,選取「Network endpoint group (Zonal)」(網路端點群組 (可用區))。
  6. 根據您使用的負載平衡器類型,選取「Endpoints type」(端點類型)。
  7. 選取「網路」。
  8. 選取「子網路」。
  9. 選取「區域」。
  10. 如果可用區 NEG 只有 GCE_VM_IP_PORT 端點,請輸入「Default port」(預設通訊埠)。
  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 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
    前往「Network Endpoint Groups」(網路端點群組) 頁面
  2. 按一下您要新增端點的網路端點群組「名稱」。您會看到「Network endpoint group details」(網路端點群組詳細資料) 頁面。
  3. 在「Network endpoints in this group」(這個群組中的網路端點) 區段中,按一下 [Add network endpoint] (新增網路端點]。系統會顯示「Add network endpoint」(新增網路端點) 頁面。
  4. 選取某個 VM 執行個體以將其內部 IP 位址新增為網路端點,然後按一下 [Add] (新增)。您會看到「Network interface」(網路介面)、可用區、子網路,以及指派給端點的 VM 介面內部 IP 位址。
  5. 如果可用區 NEG 只有 GCE_VM_IP_PORT 端點,請按照下列步驟操作:
    1. 輸入新網路端點的 IP 位址。
    2. 選取「Port type」(通訊埠類型)。
      • 如果選取「Default」(預設),端點會使用網路端點群組中所有端點的預設通訊埠。
      • 如果您選取 [Custom] (自訂),請輸入端點要使用的「Port number」(通訊埠編號)。
  6. 如要新增更多端點,請按一下 [Add network endpoint] (新增網路端點),然後重複執行步驟 5 和 6。
  7. 新增所有需要的端點後,按一下「Create」(建立)。

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 位址,請參閱「GCE_VM_IP 區域 NEG 的端點規格」。

將端點新增至 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 中指定預設通訊埠,則可選擇是否指定通訊埠。這個欄位不支援具有 GCE_VM_IP 端點的可用區 NEG。

    如果省略 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. 在「Backend configuration」(後端設定) 頁面中,按一下要移除 NEG 的後端服務對應的「Edit」(編輯) 圖示 。
  6. 在「Backend」(後端) 區段中,找出要移除的 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 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
    前往「Network Endpoint Groups」(網路端點群組) 頁面
  2. 點選您要從中刪除端點的網路端點群組「名稱」。您會看到「Network endpoint group detail」(網路端點群組詳細資料) 頁面。
  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 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面

gcloud

如何列出網路端點群組:

gcloud compute network-endpoint-groups list

說明特定網路端點群組

控制台

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

  1. 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
    前往「Network Endpoint Groups」(網路端點群組) 頁面
  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. 在「Backend configuration」(後端設定) 頁面中,按一下要移除 NEG 的後端服務對應的「Edit」(編輯) 圖示 。
  6. 在「Backend」(後端) 區段中,找出要移除的 NEG,然後按一下該 NEG 的垃圾桶圖示。
  7. 按一下「Update」。

如何刪除網路端點群組:

  1. 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
    前往「Network Endpoint Groups」(網路端點群組) 頁面
  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 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
    前往「Network Endpoint Groups」(網路端點群組) 頁面
  2. 點選您要從中刪除端點的網路端點群組「名稱」。您會看到「Network endpoint group detail」(網路端點群組詳細資料) 頁面,其中列出端點群組的端點。
  3. 如要篩選端點,請在「Network endpoints in this group」(這個群組中的網路端點) 下方的文字欄位中建立鍵/值組合。

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 後端搭配使用。詳情請參閱「健康狀態檢查概念」。