本文件說明如何部署使用區域性網路端點群組 (NEG) 後端的外部直通式網路負載平衡器。使用 GCE_VM_IP
端點的可用區域 NEG 可讓您執行下列操作:
- 將封包轉送至虛擬機器 (VM) 執行個體的非
nic0
網路介面,方法是將 VM 執行個體的網路介面設為後端端點。 - 建立一組靈活的後端端點,讓端點可附加至多個 NEG,且每個 NEG 可擁有不同的端點集合 (可能重疊)。
在您按照本文件操作之前,請先熟悉以下內容:
- 後端服務型外部直通式網路負載平衡器總覽中的可用區 NEG
- 區域性網路端點群組簡介
權限
如要按照這些步驟操作,您必須在專案中建立執行個體與修改網路。您必須是專案擁有者或編輯者,或者具有下列所有 Compute Engine 身分與存取權管理角色:
工作 | 必要角色 |
---|---|
建立網路、子網路和負載平衡器元件 | 運算網路管理員 (roles/compute.networkAdmin )
|
新增與移除防火牆規則 | Compute Security Admin (roles/compute.securityAdmin )
|
建立執行個體 | 運算執行個體管理員 (roles/compute.instanceAdmin )
|
如需詳細資訊,請參閱以下頁面:
設定總覽
本文件說明如何設定及測試使用 GCE_VM_IP
可用區 NEG 後端的外部直通式網路負載平衡器。本節中的步驟說明如何設定下列項目:
- 範例虛擬私有雲網路
lb-network
包含自訂子網路。 - 允許連入連線到後端 VM 的防火牆規則。
- 四個 VM:
- 區域
us-west1-a
中的 VMvm-a1
和vm-a2
- 區域
us-west1-c
中的 VMvm-c1
和vm-c2
- 區域
- 兩個後端區域 NEG,
neg-a
位於區域us-west1-a
,neg-c
位於區域us-west1-c
。每個 NEG 都有以下端點:neg-a
包含以下兩個端點:- 以主要內部 IP 位址識別的 VM
vm-a1
nic1
- 以主要內部 IP 位址識別的 VM
vm-a2
nic1
- 以主要內部 IP 位址識別的 VM
neg-c
包含以下兩個端點:- 以主要內部 IP 位址識別的 VM
vm-c1
nic1
- 以主要內部 IP 位址識別的 VM
vm-c2
nic1
- 以主要內部 IP 位址識別的 VM
us-west1-a
中用於測試連線的一個用戶端 VM (vm-client
)- 以下負載平衡器元件:
us-west1
地區中的外部後端服務,用於管理兩個區域性 NEG 之間的連線分配- 負載平衡器前端的外部轉送規則和 IP 位址
外部直通式網路負載平衡器是一種區域負載平衡器。所有負載平衡器元件 (後端 VM、後端服務和轉送規則) 都必須位於同一個地區。
這個範例的架構如下所示:
事前準備
安裝 Google Cloud CLI。如需工具的完整總覽,請參閱 gcloud CLI 總覽。您可以在 API 和 gcloud 參考資料中找到與負載平衡相關的指令。
如果您先前沒有執行過 gcloud CLI,請先執行 gcloud init
指令進行驗證。
本頁面假設您已熟悉 bash。
設定網路和子網路
本頁範例使用名為 lb-network
的自訂模式虛擬私有雲網路。如果您只想處理 IPv4 流量,可以使用自動模式虛擬私有雲網路。不過,IPv6 流量需要自訂模式子網路。
IPv6 流量也需要雙重堆疊子網路 (stack-type
設為 IPv4_IPv6
)。在自訂模式虛擬私有雲網路中建立雙重堆疊子網路時,您可以為子網路選擇 IPv6 存取類型。在這個範例中,我們將子網路的 ipv6-access-type
參數設為 EXTERNAL
。也就是說,這個子網路中的新 VM 可同時指派外部 IPv4 位址和外部 IPv6 位址。轉送規則也可以同時指派外部 IPv4 位址和外部 IPv6 位址。
本例中使用的後端和負載平衡器元件位於以下地區和子網路:
- 區域:
us-central1
- 子網路:
lb-subnet
,主要 IPv4 位址範圍為 10.1.2.0/24。雖然您可以選擇在子網路上設定哪個 IPv4 位址範圍,但系統會自動指派 IPv6 位址範圍。Google 提供固定大小 (/64) 的 IPv6 CIDR 區塊。
如要建立範例網路和子網路,請按照以下步驟操作。
主控台
如要同時支援 IPv4 和 IPv6 流量,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。
按一下「建立虛擬私有雲網路」。
輸入
lb-network
的「Name」。在「Subnets」(子網路) 區段中:
- 將「Subnet creation mode」(子網路建立模式) 設為 [Custom] (自訂)。
- 在「New subnet」(新的子網路) 區段中,設定下列欄位,然後按一下「Done」:
- Name (名稱):
lb-subnet
- Region (區域):
us-central1
- IP 堆疊類型:IPv4 和 IPv6 (雙重堆疊)
- IPv4 範圍:
10.1.2.0/24
雖然您可以為子網路設定 IPv4 位址範圍,但無法選擇子網路的 IPv6 位址範圍。Google 提供固定大小 (/64) 的 IPv6 CIDR 區塊。 - IPv6 存取權類型:外部
- Name (名稱):
按一下 [建立]。
如要支援僅 IPv4 流量,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。
按一下「建立虛擬私有雲網路」。
輸入
lb-network
的「Name」。在「Subnets」(子網路) 區段中:
- 將「Subnet creation mode」(子網路建立模式) 設為 [Custom] (自訂)。
- 在「New subnet」(新的子網路) 區段中,設定下列欄位,然後按一下「Done」:
- Name (名稱):
lb-subnet
- Region (區域):
us-central1
- IP stack type (IP 堆疊類型):IPv4 (單一堆疊)
- IPv4 範圍:
10.1.2.0/24
- Name (名稱):
按一下 [建立]。
gcloud
建立自訂模式虛擬私有雲網路:
gcloud compute networks create lb-network \ --subnet-mode=custom
在
lb-network
網路中,為us-central1
地區的後端建立子網路。如要同時支援 IPv4 和 IPv6 流量,請使用下列指令建立雙重堆疊子網路:
gcloud compute networks subnets create lb-subnet \ --stack-type=IPV4_IPv6 \ --ipv6-access-type=EXTERNAL \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1
如要只測試 IPv4 流量,請使用下列指令:
gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1
建立 VM 和網路端點群組
為了示範外部直通式網路負載平衡器的區域性質,本範例使用兩個不同區域中的區域性 NEG 後端。流量會在兩個 NEG 之間,以及每個 NEG 內的端點之間負載平衡。
建立 VM
針對這個負載平衡情境,您會建立四個 VM,並在每個執行個體上安裝 Apache 網路伺服器。網路伺服器會監聽 TCP 通訊埠 80。根據預設,Apache 會設定為繫結至任何 IP 位址。外部直通式網路負載平衡器會保留目的地 IP 位址,藉此傳遞封包。
為方便說明,這些後端 VM 會執行 Debian GNU Linux 10。
如要同時處理 IPv4 和 IPv6 流量,請將後端 VM 設為雙重堆疊。將 VM 的 stack-type
設為 IPv4_IPv6
。這些 VM 也會從子網路繼承 ipv6-access-type
設定 (在本例中為 EXTERNAL
)。如要進一步瞭解 IPv6 需求,請參閱外部直通式網路負載平衡器總覽:轉送規則。
如要將現有 VM 用作後端,請使用 gcloud compute instances network-interfaces update
指令將 VM 更新為雙層堆疊。
做為外部直通式網路負載平衡器的後端 VM 的執行個體,必須執行適當的 Linux 訪客環境、Windows 訪客環境或其他提供等效功能的處理程序。
每個 VM 都會使用兩個網路介面 (nic0
和 nic1
) 建立。本教學課程使用 nic1
,該網路與 lb-network
VPC 網路和 lb-subnet
子網路相關聯。稍後在本程序中,請使用這個 lb-network
網路和 lb-subnet
子網路建立區域 NEG。
主控台
建立 VM
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
使用下列名稱和區域組合,重複執行下列步驟來建立四個 VM:
- 名稱:
vm-a1
,區域:us-west1-a
- 名稱:
vm-a2
,區域:us-west1-a
- 名稱:
vm-c1
,區域:us-west1-c
- 名稱:
vm-c2
,區域:us-west1-c
- 名稱:
點選「建立執行個體」。
按照先前的指示設定「Name」(名稱)。
在「Region」(區域) 中選取
us-west1
,然後選擇先前指定的「Zone」(可用區)。在「Boot disk」(開機磁碟) 專區中,確認已為開機磁碟選項選取「Debian GNU/Linux 12 (bookworm)」。如有需要,請按一下「選擇」來變更圖片。
按一下「進階選項」,然後進行下列變更:
- 按一下「網路」,然後新增下列「Network tags」(網路標記):
lb-tag
在「網路介面」部分,按一下「新增網路介面」,然後進行以下變更:
針對 IPv4 和 IPv6 後端:
- Network (網路):
lb-network
- Subnet (子網路):
lb-subnet
- IP 堆疊類型:
IPv4 and IPv6 (dual-stack)
- 「Primary internal IP」(主要內部 IP):臨時 (自動)
- 外部 IPv4 位址:臨時 (自動)
- 外部 IPv6 位址:自動指派
針對僅限 IPv4 的後端:
- Network (網路):
lb-network
- Subnet (子網路):
lb-subnet
- IP 堆疊類型:
IPv4 (single-stack)
- 「Primary internal IP」(主要內部 IP):臨時 (自動)
- External IP (外部 IP):臨時
接著點選「完成」。
- Network (網路):
按一下 [Management] (管理)。在「Startup script」(開機指令碼) 欄位中,複製並貼上下列指令碼內容。四個 VM 的指令碼內容完全相同:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
- 按一下「網路」,然後新增下列「Network tags」(網路標記):
按一下 [建立]。
gcloud
使用下列四個 VM_NAME
和 ZONE
組合,透過執行以下指令四次來建立四個 VM。四個 VM 的指令碼內容完全相同。
VM_NAME
:vm-a1
和ZONE
:us-west1-a
VM_NAME
:vm-a2
和ZONE
:us-west1-a
VM_NAME
:vm-c1
和ZONE
:us-west1-c
VM_NAME
:vm-c2
和ZONE
:us-west1-c
如要同時處理 IPv4 和 IPv6 流量,請使用下列指令。
gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=lb-tag \ --network-interface=network=default,subnet=default,stack_type=IPv4_IPv6,--ipv6-network-tier=PREMIUM \ --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPv4_IPv6,--ipv6-network-tier=PREMIUM \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
如要處理 僅限 IPv4 流量,請使用下列指令:
gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=lb-tag \ --network-interface=network=default,subnet=default,stack_type=IPv4_ONLY \ --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPv4_ONLY \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
使用 GCE_VM_IP
端點建立可用區性 NEG
NEG 必須建立在與先前步驟中建立的 VM 相同的區域。本範例也會在 lb-network
VPC 網路和 lb-subnet
子網路中建立 NEG,並與在先前步驟中建立的 VM 的 nic1
建立關聯。因此,NEG 的端點會位於 VM 的 nic1
上。
主控台
如何建立可用區網路端點群組:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 按一下「建立網路端點群組」。
- 輸入可用區性 NEG 的「名稱」:
neg-a
。 - 選取「網路端點群組類型」:「網路端點群組 (區域性)」。
- 選取「Network」(網路):lb-network
- 選取「子網路」:lb-subnet
- 選取「Zone」(區域):us-west1-a
- 按一下 [建立]。
- 重複上述步驟,在 us-west1-c 區域中建立第二個名為
neg-c
的區域 NEG。
將端點新增至區域性 NEG:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network endpoint groups」(網路端點群組) - 按一下前一個步驟建立的第一個網路端點群組的「名稱」 (neg-a)。畫面上即會顯示「Network endpoint group details」(網路端點群組詳細資料) 頁面。
在「Network endpoints in this group」(這個群組中的網路端點) 區段中,按一下 [Add network endpoint] (新增網路端點]。畫面上即會出現「Add network endpoint」(新增網路端點) 頁面。
- 按一下「VM instance」(VM 執行個體),然後選取「vm-a1」,將其內部 IP 位址新增為網路端點。
- 按一下 [建立]。
- 再次按一下「Add network endpoint」(新增網路端點),然後在「VM instance」(VM 執行個體) 下方選取「vm-a2」。
- 按一下 [建立]。
按一下前一個步驟建立的第二個網路端點群組的「名稱」 (neg-c)。畫面上即會顯示「Network endpoint group details」(網路端點群組詳細資料) 頁面。
在「Network endpoints in this group」(這個群組中的網路端點) 區段中,按一下 [Add network endpoint] (新增網路端點]。畫面上即會出現「Add network endpoint」(新增網路端點) 頁面。
- 按一下「VM 執行個體」,然後選取「vm-c1」,將其內部 IP 位址新增為網路端點。
- 按一下 [建立]。
- 再次按一下「Add network endpoint」(新增網路端點),然後在「VM instance」(VM 執行個體) 下方選取「vm-c2」。
- 按一下 [建立]。
gcloud
使用
gcloud compute network-endpoint-groups create
指令,在us-west1-a
中建立名為neg-a
的GCE_VM_IP
區域 NEG:gcloud compute network-endpoint-groups create neg-a \ --network-endpoint-type=gce-vm-ip \ --zone=us-west1-a \ --network=lb-network \ --subnet=lb-subnet
新增端點至
neg-a
:gcloud compute network-endpoint-groups update neg-a \ --zone=us-west1-a \ --add-endpoint='instance=vm-a1' \ --add-endpoint='instance=vm-a2'
使用
gcloud compute network-endpoint-groups create
指令,在us-west1-c
中建立名為neg-c
的GCE_VM_IP
區域 NEG:gcloud compute network-endpoint-groups create neg-c \ --network-endpoint-type=gce-vm-ip \ --zone=us-west1-c \ --network=lb-network \ --subnet=lb-subnet
新增端點至
neg-c
:gcloud compute network-endpoint-groups update neg-c \ --zone=us-west1-c \ --add-endpoint='instance=vm-c1' \ --add-endpoint='instance=vm-c2'
設定防火牆規則
建立防火牆規則,允許外部流量 (包括健康狀態檢查探針) 連上後端執行個體。
本範例會建立防火牆規則,允許來自「所有」來源範圍的 TCP 流量,透過通訊埠 80 存取後端執行個體。如要為健康狀態檢查探測器建立專屬的防火牆規則,請使用「健康狀態檢查總覽:探測器 IP 範圍和防火牆規則」一文中所述的來源 IP 位址範圍。
主控台
在 Google Cloud 控制台中,前往「Firewall」頁面。
如要允許 IPv4 流量,請執行下列步驟:
- 點按「建立防火牆規則」。
- 輸入「名稱」:
allow-network-lb-ipv4
。 - 在「Network」(網路) 中選取 lb-network。
- 在「Targets」(目標) 中選取 Specified target tags。
- 在「Target tags」(目標標記) 欄位中輸入
lb-tag
。 - 在「Source filter」中選取「IPv4 ranges」。
- 將「Source IPv4 ranges」(來源 IPv4 範圍) 設為
0.0.0.0/0
。這可允許來自任何來源的 IPv4 流量。這也讓 Google 的健康狀態檢查探測器可連線至後端執行個體。 - 在「Specified protocols and ports」(指定的通訊協定和通訊埠) 中,選取「TCP」並輸入
80
。 - 按一下 [建立]。
如要允許 IPv6 流量,請執行下列步驟:
- 再次按一下「建立防火牆規則」。
- 輸入「名稱」:
allow-network-lb-ipv6
。 - 在「Network」(網路) 中選取 lb-network。
- 在「Targets」(目標) 中選取 Specified target tags。
- 在「Target tags」(目標標記) 欄位中輸入
lb-tag
。 - 在「Source filter」中選取「IPv6 範圍」。
- 將「Source IPv6 ranges」(來源 IPv6 範圍) 設為
::/0
。這可允許來自任何來源的 IPv6 流量。這也讓 Google 的健康狀態檢查探測器可連線至後端執行個體。 - 在「Specified protocols and ports」(指定的通訊協定和通訊埠) 中,選取「TCP」並輸入
80
。 - 按一下 [建立]。
gcloud
如要允許 IPv4 流量,請執行下列指令:
gcloud compute firewall-rules create allow-network-lb-ipv4 \ --network=lb-network \ --target-tags=lb-tag \ --allow=tcp:80 \ --source-ranges=0.0.0.0/0
如要允許 IPv6 流量,請執行下列指令:
gcloud compute firewall-rules create allow-network-lb-ipv6 \ --network=lb-network \ --target-tags=lb-tag \ --allow=tcp:80 \ --source-ranges=::/0
設定負載平衡器
接下來,請設定負載平衡器。
設定負載平衡器時,VM 會接收預定送至您設定之靜態外部 IP 位址的封包。如果您是使用 Compute Engine 提供的映像檔,則會將執行個體自動設定為處理這個 IP 位址。如果您是使用任何其他映像檔,則必須將這個位址設定為 eth1
上的別名,或每個執行個體上的回送。
如要設定負載平衡器,請按照下列操作說明操作。
主控台
開始設定
前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。
- 點選「建立負載平衡器」。
- 在「負載平衡器類型」部分,選取「網路負載平衡器 (TCP/UDP/SSL)」,然後點選「下一步」。
- 在「直通或使用 Proxy」部分,選取「直通式負載平衡器」,然後點選「下一步」。
- 在「公開或內部」部分,選取「公開 (外部)」,然後點選「下一步」。
- 按一下 [設定]。
後端設定
- 在「Create external passthrough Network Load Balancer」(建立外部直通式網路負載平衡器) 頁面中,輸入新負載平衡器的名稱
network-lb-zonal-neg
。 - 在「Region」(區域) 中選取
us-west1
。 - 在「Backend type」下方,選取「Zonal network endpoint group」。
- 按一下「後端設定」。畫面上會顯示您之前輸入的負載平衡器名稱,但無法修改。
- 在「Backend configuration」(後端設定) 頁面中進行以下變更:
- 在「Network endpoint group」清單中選取
neg-a
,然後按一下「Done」。 - 按一下「Add backend」(新增後端),然後重複執行上一個步驟,新增
neg-c
。 - 在「健康狀態檢查」部分,選擇「建立健康狀態檢查」或「建立另一個健康狀態檢查」,然後輸入下列資訊:
- Name (名稱):
tcp-health-check
- Protocol (通訊協定):
TCP
- Port (通訊埠):
80
- Name (名稱):
- 按一下 [儲存]。
- 在「Network endpoint group」清單中選取
- 繼續操作之前,請先驗證「Backend configuration」(後端設定)旁是否有藍色勾號。
前端設定
- 按一下「前端設定」。
- 在「Name」(名稱) 中輸入
netlb-forwarding-rule
。 - 如要處理 IPv4 流量,請按照下列步驟操作:
- 在「IP 版本」部分,選取「IPv4」。
- 在「IP address」(IP 位址) 部分,按一下下拉式選單,然後選取「Create IP address」(建立 IP 位址)。
- 在「Reserve a new static IP address」頁面中,輸入「Name」的值
netlb-ipv4-address
。 - 按一下「保留」。
- 在「Reserve a new static IP address」頁面中,輸入「Name」的值
- 在「Ports」(通訊埠) 部分,選擇「Single」(單一)。在「Port number」(通訊埠編號) 中輸入
80
。 - 按一下 [完成]。
如要處理 IPv6 流量,請按照下列步驟操作:
- 在「IP 版本」中,選取「IPv6」。
- 在「Subnetwork」(子網路) 中,選取「lb-subnet」。
- 在「IPv6 範圍」部分,按一下下拉式選單,然後選取「建立 IP 位址」。
- 在「Reserve a new static IP address」頁面中,輸入「Name」的值
netlb-ipv6-address
。 - 按一下「保留」。
- 在「Reserve a new static IP address」頁面中,輸入「Name」的值
- 在「Ports」(通訊埠) 部分,選擇「Single」(單一)。在「Port number」(通訊埠編號) 中輸入
80
。 - 按一下 [完成]。
如果「Frontend configuration」(前端設定) 左邊顯示具有勾號的藍色圓圈,即表示設定成功。
檢閱設定
- 按一下「檢查並完成」。
- 查看負載平衡器設定。
- 選用:按一下「等效程式碼」,查看用來建立負載平衡器的 REST API 要求。
按一下 [建立]。
在負載平衡頁面的新負載平衡器的「Backend」(後端) 欄下方,您應該會看到綠色勾號,表示新負載平衡器健康狀態良好。
gcloud
保留靜態外部 IP 位址。
適用於 IPv4 流量
為負載平衡器建立靜態外部 IPv4 位址。
gcloud compute addresses create netlb-ipv4-address \ --region=us-west1
針對 IPv6 流量
為負載平衡器建立靜態外部 IPv6 位址範圍。使用的子網路必須是具有外部 IPv6 範圍的雙重堆疊子網路。
gcloud compute addresses create netlb-ipv6-address \ --region=us-west1 \ --subnet=lb-subnet \ --ip-version=IPV6 \ --endpoint-type=NETLB
建立 TCP 健康狀態檢查。
gcloud compute health-checks create tcp tcp-health-check \ --region=us-west1 \ --port=80
建立後端服務。
gcloud compute backend-services create networklb-backend-service \ --protocol=TCP \ --health-checks=tcp-health-check \ --health-checks-region=us-west1 \ --region=us-west1
將兩個區域 NEG
neg-a
和neg-c
新增至後端服務:gcloud compute backend-services add-backend networklb-backend-service \ --region=us-west1 \ --network-endpoint-group=neg-a \ --network-endpoint-group-zone=us-west1-a
gcloud compute backend-services add-backend networklb-backend-service \ --region=us-west1 \ --network-endpoint-group=neg-c \ --network-endpoint-group-zone=us-west1-c
請根據要處理的 IPv4 流量或 IPv6 流量建立轉送規則。建立這兩種轉送規則,以便處理這兩種流量。
適用於 IPv4 流量
建立轉送規則,將傳入的 TCP 流量轉送至後端服務。使用在步驟 1 中保留的 IPv4 位址,做為負載平衡器的靜態外部 IP 位址。
gcloud compute forwarding-rules create forwarding-rule-ipv4 \ --load-balancing-scheme=EXTERNAL \ --region=us-west1 \ --ports=80 \ --address=netlb-ipv4-address \ --backend-service=networklb-backend-service
針對 IPv6 流量
建立轉送規則來處理 IPv6 流量。使用步驟 1 中保留的 IPv6 位址範圍,做為負載平衡器的靜態外部 IP 位址。使用的子網路必須是具有外部 IPv6 子網路範圍的雙重堆疊子網路。
gcloud compute forwarding-rules create forwarding-rule-ipv6 \ --load-balancing-scheme=EXTERNAL \ --region=us-west1 \ --network-tier=PREMIUM \ --ip-version=IPV6 \ --subnet=lb-subnet \ --address=netlb-ipv6-address \ --ports=80 \ --backend-service=networklb-backend-service
測試負載平衡器
負載平衡服務已設定完成,您現在可以開始將流量傳送至負載平衡器的外部 IP 位址,並觀察流量是否分散到後端執行個體。
查詢負載平衡器的外部 IP 位址
主控台
在「進階」負載平衡頁面中,前往「Forwarding rules」分頁標籤。
找出負載平衡器所使用的轉送規則。
在「Address」欄中,請注意列出的外部 IP 位址。
gcloud:IPv4
輸入下列指令,查看負載平衡器所用 network-lb-forwarding-rule
轉送規則的外部 IPv4 位址。
gcloud compute forwarding-rules describe forwarding-rule-ipv4 \ --region=us-west1
gcloud:IPv6
輸入下列指令,查看負載平衡器所用 network-lb-forwarding-rule
轉送規則的外部 IPv6 位址。
gcloud compute forwarding-rules describe forwarding-rule-ipv6 \ --region=us-west1
將流量傳送至負載平衡器
使用 curl
聯絡負載平衡器的 IP 位址,向負載平衡器發出網路要求。
在具備 IPv4 連線能力的用戶端上,執行下列指令:
while true; do curl -m1 IPV4_ADDRESS; done
在具備 IPv6 連線能力的用戶端上執行下列指令:
while true; do curl -m1 http://IPV6_ADDRESS; done
舉例來說,如果指派的 IPv6 位址為
[2001:db8:1:1:1:1:1:1/96]:80
,指令會類似以下:while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:80; done
請注意 curl
指令傳回的文字。產生回應的後端 VM 的名稱會顯示在該文字中;例如:Page served
from: VM_NAME
curl
指令的回應會在後端執行個體之間隨機輪流出現。如果一開始的回應失敗,在您重試之前,可能需要等候大約 30 秒,設定才會完整載入且執行個體才會標示為健康狀態良好。
其他設定選項
如要進一步自訂外部直通式網路負載平衡器,您可以設定工作階段相依性、流量引導,以及設定容錯移轉政策或連線追蹤政策。這些工作是選用的,您可以按照任何順序執行。如需操作說明,請參閱「其他設定選項」。
使用 BYOIP 建立 IPv6 轉送規則
在前面步驟中建立的負載平衡器會設定轉送規則,其中 IP version
為 IPv4
或 IPv6
。本節提供使用自備 IP (BYOIP) 位址建立 IPv6 轉送規則的操作說明。
自備 IP 位址可讓您為 Google Cloud 資源設定及使用自己的公開 IPv6 位址。詳情請參閱「自備 IP 位址」。
開始設定使用 BYOIP 位址的 IPv6 轉送規則前,您必須完成下列步驟:
如要建立新的轉送規則,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。
- 按一下要修改的負載平衡器名稱。
- 按一下「編輯」圖示 。
- 按一下「前端設定」。
- 按一下 [Add frontend IP and port] (新增前端 IP 和通訊埠)。
- 在「New Frontend IP and port」(新增的前端 IP 和通訊埠) 區段中,指定下列項目:
- 選取所需的「Protocol」(通訊協定)。
- 在「IP 版本」欄位中,選取「IPv6」。
- 在「IPv6 範圍來源」欄位中,選取「BYOIP」。
- 在「IP collection」清單中,選取先前步驟中建立的子前置字串,並啟用轉送規則選項。
- 在「IPv6 範圍」欄位中輸入 IPv6 位址範圍。IPv6 位址範圍的前置字串必須與 相關聯子前置字串指定的可分配前置字串長度相符。
- 在「Ports」(通訊埠) 欄位中輸入通訊埠號碼。
- 按一下 [完成]。
- 按一下 [Update]。
gcloud
使用
gcloud compute forwarding-rules create
指令建立轉送規則:
gcloud compute forwarding-rules create FWD_RULE_NAME \ --load-balancing-scheme EXTERNAL \ --ip-protocol PROTOCOL \ --ports ALL \ --ip-version IPV6 \ --region REGION_A \ --address IPV6_CIDR_RANGE \ --backend-service BACKEND_SERVICE \ --ip-collection PDP_NAME
更改下列內容:
FWD_RULE_NAME
:轉送規則的名稱PROTOCOL
:轉送規則的 IP 通訊協定。預設為TCP
。IP 通訊協定可以是TCP
、UDP
或L3_DEFAULT
其中之一。REGION_A
:轉送規則的區域IPV6_CIDR_RANGE
:轉送規則提供的 IPv6 位址範圍。IPv6 位址範圍的前置字串必須與 相關聯子前置字串指定的可分配前置字串長度相符。BACKEND_SERVICE
:後端服務名稱PDP_NAME
:公開委派前置碼的名稱。PDP 必須是 EXTERNAL_IPV6_FORWARDING_RULE_CREATION 模式中的子前置字串
後續步驟
- 如要瞭解如何將外部直通式網路負載平衡器從目標集區後端遷移至區域性後端服務,請參閱「將外部直通式網路負載平衡器從目標集區遷移至後端服務」。
- 如要針對多個 IP 通訊協定 (支援 IPv4 和 IPv6 流量) 設定外部直通式網路負載平衡器,請參閱「針對多個 IP 通訊協定設定外部直通式網路負載平衡器」。
- 如要使用 Google Cloud Armor 為外部直通式網路負載平衡器設定進階網路分散式阻斷服務防護功能,請參閱「設定進階網路分散式阻斷服務防護功能」。
- 如要刪除資源,請參閱「清除負載平衡器設定」。