本文件說明如何設定區域性網路端點群組 (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。
建立區域性網路端點群組
主控台
如何建立可用區網路端點群組:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 按一下「建立網路端點群組」。
- 在「網路端點群組類型」中,選取「網路端點類型:區域」。
- 輸入網路端點群組的「名稱」。
- 在「網路端點類型」部分,選取「網路端點群組 (區域性)」。
- 視您使用的負載平衡器類型而定,選取端點類型。
- 選取「網路」。
- 選取「子網路」。
- 選取「區域」。
- 如果區域性 neg 僅包含
GCE_VM_IP_PORT
端點,請輸入預設通訊埠。 - 按一下 [建立]。
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 會位於所選區域的自動建立子網路中。如果網路是自訂模式 VPC,或需要指定手動建立的子網路,則此為必要標記。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
是網路端點所屬子網路的名稱。
將端點加入網路端點群組
主控台
如何將端點新增至網路端點群組:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 按一下您要新增端點的網路端點群組「名稱」。畫面上即會顯示「Network endpoint group details」(網路端點群組詳細資料) 頁面。
- 在「Network endpoints in this group」(這個群組中的網路端點) 區段中,按一下 [Add network endpoint] (新增網路端點]。畫面上即會出現「Add network endpoint」(新增網路端點) 頁面。
- 選取某個 VM 執行個體以將其內部 IP 位址新增為網路端點,然後按一下 [Add] (新增)。畫面上即會顯示已指派給端點的 VM 介面「Network interface」(網路介面)、區域、子網路和內部 IP 位址。
- 如果區域性 neg 僅包含
GCE_VM_IP_PORT
端點,請執行下列步驟:- 輸入新網路端點的「IP address or range」(IP 位址或範圍)。
- 選擇「Port type」(通訊埠類型)。
- 如果您選取「預設」,則端點會使用網路端點群組中所有端點的預設通訊埠。
- 如果您選取 [Custom] (自訂),請輸入端點要使用的「Port number」(通訊埠編號)。
- 如要新增更多端點,請按一下 [Add network endpoint] (新增網路端點),然後重複執行步驟 5 和 6。
- 新增所需的所有端點之後,按一下 [Add] (新增)。
gcloud
如何將端點新增至網路端點群組:
gcloud compute network-endpoint-groups update NEG_NAME \ --zone=ZONE \ --add-endpoint 'instance=INSTANCE_NAME,[ip=IP_ADDRESS],[port=PORT]' \ [--add-endpoint ...]
更改下列內容:
NEG_NAME
:NEG 名稱ZONE
:NEG 所在的可用區名稱。INSTANCE_NAME
:IP 位址所屬的 VM 名稱。IP_ADDRESS
:要新增的網路端點的選用 IP 位址。如果您省略 IP 位址,Google Cloud 會選取與 NEG 子網路相符的 VM 執行個體的主要內部 IP 位址。PORT
:要新增的網路端點通訊埠。如果已在 NEG 中指定預設通訊埠,則不一定要使用此通訊埠。這個欄位不支援含有GCE_VM_IP
端點的可用區 NEG。
詳情請參閱區域網路端點群組總覽。
舉例來說,如要將端點新增至 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 新增至後端服務
主控台
如何將網路端點群組新增至後端服務:
- 前往 Google Cloud 控制台的「負載平衡」頁面。
前往「Load balancing」(負載平衡) 頁面 - 按一下您要編輯後端服務的負載平衡器名稱。
- 在「負載平衡器詳細資料」頁面上,按一下「編輯」圖示 。
- 在「Edit load balancer」(編輯負載平衡器) 頁面上,按一下 [Backend configuration] (後端設定)。
- 在「後端設定」頁面中,按一下「編輯」圖示 。
- 按一下 [Add backend] (新增後端)。
- 選取「區域網路端點群組」,然後按一下「完成」。
- 按一下 [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
主控台
- 前往 Google Cloud 控制台的「負載平衡」頁面。
前往「Load balancing」(負載平衡) 頁面 - 按一下您要編輯後端服務的負載平衡器名稱。
- 在「負載平衡器詳細資料」頁面上,按一下「編輯」圖示 。
- 在「Edit load balancer」(編輯負載平衡器) 頁面上,按一下 [Backend configuration] (後端設定)。
- 在「Backend configuration」(後端設定) 頁面上,針對要從中刪除 NEG 的後端服務,點選「Edit」(編輯) 。
- 在「Backend」區段中,找出要移除的 NEG,然後點選該 NEG 的垃圾桶圖示。
- 按一下 [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,則會套用所有後端服務的最大排除間隔。
主控台
如要從網路端點群組移除端點:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 點選您要從中刪除端點的網路端點群組「名稱」。畫面上即會顯示「Network endpoint group detail」(網路端點群組詳細資料) 頁面。
- 選取要刪除的網路端點,然後按一下 [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
說明特定的網路端點群組
主控台
如何取得特定網路端點群組的詳細資料:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 點選您要查看詳細資料的網路端點群組名稱。
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 中沒有連線排除的所有端點。
主控台
如何從後端服務移除網路端點群組:
- 前往 Google Cloud 控制台的「負載平衡」頁面。
前往「Load balancing」(負載平衡) 頁面 - 按一下您要編輯後端服務的負載平衡器名稱。
- 在「負載平衡器詳細資料」頁面上,按一下「編輯」圖示 。
- 在「Edit load balancer」(編輯負載平衡器) 頁面上,按一下 [Backend configuration] (後端設定)。
- 在「Backend configuration」(後端設定) 頁面上,針對要從中刪除 NEG 的後端服務,點選「Edit」(編輯) 。
- 在「Backend」區段中,找出要移除的 NEG,然後點選該 NEG 的垃圾桶圖示。
- 按一下 [Update]。
如何刪除網路端點群組:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 找出您要刪除的網路端點群組。
- 點選該資料列中的垃圾桶圖示。
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
列出網路端點群組中的端點
主控台
如何查看網路端點群組中的端點清單:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 點選您要從中刪除端點的網路端點群組「名稱」。畫面上即會出現「Network endpoint group detail」(網路端點群組詳細資料) 頁面,其中列出端點群組的端點。
- 如要篩選端點,請在「這個群組中的網路端點」下方的文字欄位中建立鍵/值組合。
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 後端使用舊版健康狀態檢查。詳情請參閱「健康狀態檢查概念」。