設定可用區性 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 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
    前往「網路端點群組」頁面
  2. 按一下「Create network endpoint group」(建立網路端點群組)
  3. 將「網路端點群組類型」設為「網路端點類型:區域」
  4. 輸入網路端點群組的「名稱」
  5. 將「網路端點類型」設為「網路端點群組 (區域性)」
  6. 根據使用的負載平衡器類型,選取「端點類型」
  7. 選取「網路」
  8. 選取「子網路」
  9. 選取「區域」
  10. 如果區域 NEG 只有 GCE_VM_IP_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」(網路端點群組) 頁面。
    前往「網路端點群組」頁面
  2. 按一下您要新增端點的網路端點群組「名稱」。畫面上即會出現「網路端點群組詳細資料」頁面。
  3. 在「Network endpoints in this group」(這個群組中的網路端點) 區段中,按一下 [Add network endpoint] (新增網路端點]。畫面會出現「Add network endpoint」(新增網路端點) 頁面。
  4. 選取某個 VM 執行個體以將其內部 IP 位址新增為網路端點,然後按一下 [Add] (新增)。畫面上即會出現 VM 介面的「網路介面」、「區域」、「子網路」和指派給端點的內部 IP 位址。
  5. 如果區域負向 NEG 只有 GCE_VM_IP_PORT 端點,請執行下列步驟:
    1. 輸入新網路端點的「IP address」(IP 位址)
    2. 選取「Port type」(通訊埠類型)
      • 如果您選取「預設」,端點會使用網路端點群組中所有端點的預設通訊埠。
      • 如果您選取 [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 端點新增至網路端點群組:

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

更改下列內容:

  • NEG_NAME:NEG 名稱
  • ZONE:NEG 所在的可用區名稱
  • INSTANCE_NAME:IP 位址所屬的 VM 名稱。
  • IPv4_ADDRESS:網路介面的主要內部 IPv4 位址

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

將端點新增至GCE_VM_IP_PORT區域 NEG

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

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

gcloud compute network-endpoint-groups update NEG_NAME \
    --zone=ZONE \
    --add-endpoint 'instance=INSTANCE_NAME,[ip=IPv4_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 位址,請參閱區域 NEG 的端點規格GCE_VM_IP_PORT

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

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. 在「Backend configuration」(後端設定) 頁面中,按一下「Edit」(編輯)
  6. 按一下 [Add backend] (新增後端)
  7. 選取「區域網路端點群組」,然後按一下「完成」
  8. 按一下「更新」

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. 按一下「更新」

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」(網路端點群組) 頁面。
    前往「網路端點群組」頁面
  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 ...]

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

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」(網路端點群組) 頁面。
前往「網路端點群組」頁面

gcloud

如何列出網路端點群組:

gcloud compute network-endpoint-groups list

說明特定網路端點群組

控制台

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

  1. 前往 Google Cloud 控制台的「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. 按一下「更新」

如何刪除網路端點群組:

  1. 前往 Google Cloud 控制台的「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」(網路端點群組) 頁面。
    前往「網路端點群組」頁面
  2. 點選您要從中刪除端點的網路端點群組「名稱」。畫面上即會出現「Network endpoint group detail」(網路端點群組詳細資料) 頁面,其中列出端點群組的端點。
  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 後端使用舊版健康狀態檢查。詳情請參閱「健康狀態檢查概念」。