本頁說明如何部署區域外部應用程式負載平衡器,以便將流量負載平衡至位於內部部署或其他公用雲端,且可透過混合式連線存取的網路端點。
完成這些工作後,您可以視需要啟用其他服務 (例如 Cloud CDN 和 Google Cloud Armor) 和進階流量管理功能。
如果您尚未這樣做,請參閱混合式連線 NEG 簡介,瞭解設定混合式負載平衡所需的網路需求。
設定總覽
本頁範例會設定以下示範部署作業:
您必須先設定混合式連線,才能嘗試設定混合式負載平衡部署。本文件不包含混合式連線設定。
視您選擇的混合式連線產品 (Cloud VPN 或 Cloud Interconnect (專屬或合作夥伴)) 而定,請參閱相關產品說明文件來設定這項功能。
權限
如要設定混合式負載平衡,您必須具備下列權限:
開啟 Google Cloud
- 權限:在 Google Cloud 與您的地端部署環境或其他雲端環境之間建立混合式連線。如需所需權限清單,請參閱相關的網路連線產品說明文件。
- 具備建立混合式連線 NEG 和負載平衡器的權限。Compute 負載平衡器管理員角色 (
roles/compute.loadBalancerAdmin
) 包含執行本指南所述任務所需的權限。
在地端部署環境或其他非雲端環境中Google Cloud
- 權限可設定網路端點,讓內部部署環境或其他雲端環境中的服務可透過Google Cloud 使用
IP:Port
組合存取。如需更多資訊,請與環境的網路管理員聯絡。 - 在內部部署環境或其他雲端環境中建立防火牆規則的權限,以便 Google 健康狀態檢查探測器存取端點。
- 權限可設定網路端點,讓內部部署環境或其他雲端環境中的服務可透過Google Cloud 使用
此外,如要完成本頁的操作說明,您必須建立混合式連線 NEG、負載平衡器和區域 NEG (及其端點),以便做為負載平衡器的 Google Cloud後端。
因此您必須是專案擁有者或編輯者,或是應具有以下 Compute Engine 身分與存取權管理角色。
工作 | 必要角色 |
---|---|
建立網路、子網路和負載平衡器元件 | Compute 網路管理員 (roles/compute.networkAdmin ) |
新增與移除防火牆規則 | Compute 安全管理員 (roles/compute.securityAdmin ) |
建立執行個體 | Compute 執行個體管理員 (roles/compute.instanceAdmin ) |
建立混合式連線
您 Google Cloud 和內部部署環境或其他雲端環境必須透過混合式連線連線,方法是使用 Cloud Router 或路由器設備 VM 搭配 Cloud Interconnect VLAN 連結或 Cloud VPN 通道。建議您使用高可用性連線。
啟用全域動態轉送功能的 Cloud Router 會透過邊界閘道通訊協定 (BGP) 瞭解特定端點,並將其編入 Google Cloud VPC 網路。不支援區域動態路由。也不支援靜態路徑。
您可以使用相同的網路或同一個專案中的不同虛擬私有雲網路,設定混合式網路 (Cloud Interconnect 或 Cloud VPN 或 Router 應用程式 VM) 和負載平衡器。請注意以下事項:
如果您使用不同的 VPC 網路,則這兩個網路必須透過 VPC 網路對等互連連線,或是必須是位於同一個 Network Connectivity Center 中樞的 VPC 輻條。
如果您使用相同的虛擬私有雲網路,請確認虛擬私有雲網路的子網路 CIDR 範圍不會與遠端 CIDR 範圍衝突。如果 IP 位址重疊,系統會優先使用子網路路徑,而不是遠端連線。
如需操作說明,請參閱下列文件:
設定外部環境 Google Cloud
請按照下列步驟設定混合式負載平衡的內部部署環境或其他雲端環境:
- 設定網路端點,將內部部署服務公開給Google Cloud (
IP:Port
)。 - 在內部部署環境或其他雲端環境中設定防火牆規則。
- 設定 Cloud Router 向私人環境通告特定必要路徑。
設定網路端點
設定混合式連線後,您可以在內部部署環境或其他雲端環境中,使用 IP:port
組合設定一或多個網路端點,以便透過 Cloud Interconnect 或 Cloud VPN 或 Router 應用程式存取。這個 IP:port
組合會設為混合式連線 NEG 的一或多個端點, Google Cloud 稍後會在這個程序中建立。
如果 IP 端點有多個路徑,路由會遵循 Cloud Router 簡介中所述的行為。
設定防火牆規則
您必須在內部部署環境或其他雲端環境中建立下列防火牆規則:
- 在內部部署或其他雲端環境中建立防火牆允許輸入規則,允許來自該區域僅限 Proxy 的子網路的流量連上端點。
混合型 NEG 不需要允許來自 Google 健康狀態檢查探測範圍的流量。不過,如果您在單一後端服務中同時使用混合式和區域性 NEG,則必須允許區域性 NEG 從 Google 健康狀態檢查探針範圍接收流量。
宣傳路線
設定 Cloud Router 向內部部署環境或其他雲端環境通告下列自訂 IP 範圍:
- 區域的僅限 Proxy 子網路範圍。
設定 Google Cloud 環境
在下列步驟中,請務必使用用於設定兩個環境之間混合式連線的相同虛擬私有雲網路 (在本程序中稱為 NETWORK)。
此外,請確認使用的區域 (在本程序中稱為 REGION) 與用於建立 Cloud VPN 通道或 Cloud Interconnect VLAN 連結的區域相同。
設定僅限 Proxy 的子網路
這個 Proxy 專用子網路適用於 REGION 區域中的所有區域性外部應用程式負載平衡器。
主控台
- 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。
前往「VPC networks」(虛擬私有雲網路) - 前往用於在環境之間設定混合連線的網路。
- 按一下 [新增子網路]。
- 輸入「名稱」:PROXY_ONLY_SUBNET_NAME。
- 選取「Region」(區域):REGION。
- 將「用途」設為「區域受管理 Proxy」。
- 輸入「IP address range」(IP 位址範圍):PROXY_ONLY_SUBNET_RANGE。
- 按一下「新增」。
gcloud
使用 gcloud compute networks subnets
create
指令,建立僅限 Proxy 的子網路。
gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE
設定負載平衡器子網路
這個子網路用於建立負載平衡器的區域 NEG 後端、前端和內部 IP 位址。
在用於設定環境間混合式連線的 NETWORK 網路中建立這個子網路。
Cloud 控制台
- 在 Google Cloud 控制台中,前往「VPC Networks」(虛擬私有雲網路) 頁面。
前往「VPC networks」(虛擬私有雲網路) - 前往用於設定環境間混合式連線的網路。
- 在「Subnets」(子網路) 區段中:
- 將「Subnet creation mode」(子網路建立模式) 設為 [Custom] (自訂)。
- 在「New subnet」(新的子網路) 區段中,輸入以下資訊:
- Name (名稱):LB_SUBNET_NAME
- 區域:REGION
- IP address range (IP 位址範圍):LB_SUBNET_RANGE
- 按一下 [完成]。
- 按一下 [建立]。
gcloud
在 NETWORK 網路中建立子網路,用於在環境之間設定混合式連線。
gcloud compute networks subnets create LB_SUBNET_NAME
--network=NETWORK
--range=LB_SUBNET_RANGE
--region=REGION
保留負載平衡器的 IP 位址
Cloud 控制台
在 Google Cloud 控制台,前往「Reserve a static address」頁面。
輸入「名稱」:LB_IP_ADDRESS。
在「Network Service Tier」(網路服務級別) 部分,選取「Standard」(標準)。
在「IP 版本」部分,選取「IPv4」。
在「Type」(類型) 中,選取「Regional」(區域)。
選取要建立地址的 REGION。
將「Attached to」(連接至) 選項設為「None」。建立負載平衡器後,這個 IP 位址就會附加至負載平衡器的轉送規則。
按一下「保留」,即可預留 IP 位址。
gcloud
如要預約地區性靜態外部 IP 位址,請按照下列步驟操作。
gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --network-tier=STANDARD
使用
compute addresses describe
指令查看結果:gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
為區域性 NEG 建立防火牆規則
在本範例中,您會為 Google Cloud上的區域 NEG 後端建立下列防火牆規則:
fw-allow-health-check
:輸入防火牆規則,適用於要進行負載平衡的執行個體,可允許來自負載平衡器和Google Cloud 健康狀態檢查系統 (130.211.0.0/22
和35.191.0.0/16
) 的流量。這個範例會使用目標標記allow-health-check
來辨識應套用此規則的後端 VM。混合型 NEG 不需要允許來自 Google 健康狀態檢查探測範圍的流量。不過,如果您在單一後端服務中同時使用混合式和區域性 NEG,則必須允許區域性 NEG 從 Google 健康狀態檢查探針範圍接收流量。fw-allow-proxy-only-subnet
:輸入防火牆規則,允許來自僅限 Proxy 子網路的連線傳送至後端。這個範例會使用目標標記allow-proxy-only-subnet
來識別應套用此規則的後端 VM。
主控台
- 在 Google Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。
前往「防火牆政策」頁面 - 按一下「Create firewall rule」(建立防火牆規則),建立允許健康狀態檢查探針流量的規則:
- 輸入
fw-allow-health-check
的「Name」。 - 在「Network」下方選取 NETWORK。
- 在「Targets」(目標) 下方,選取 [Specified target tags] (指定的目標標記)。
- 在「Target tags」(目標標記) 欄位填入
allow-health-check
。 - 將「Source filter」(來源篩選器) 設為「IPv4 ranges」(IPv4 範圍)。
- 將「Source IPv4 ranges」(來源 IPv4 範圍) 設為
130.211.0.0/22
和35.191.0.0/16
。 - 在「Protocols and ports」(通訊協定和通訊埠) 下方,選取「Specified protocols and ports」(指定的通訊協定和通訊埠)。
- 選取「TCP」TCP,然後輸入
80
做為「Port number」(通訊埠編號)。 - 按一下 [建立]。
- 輸入
- 再次按一下「Create firewall rule」(建立防火牆規則),以建立允許來自僅限 Proxy 子網路的連線規則:
- Name (名稱):
fw-allow-ssh
- Network (網路):NETWORK
- Priority (優先順序):
1000
- 「Direction of traffic」(流量方向):[ingress] (輸入)
- 「Action on match」(相符時執行的動作):[allow] (允許)
- 「Target」(目標):指定的目標標記
- 「Target tags」(目標標記):
allow-proxy-only-subnet
- 來源篩選器:IPv4 範圍
- Source IPv4 ranges (來源 IPv4 範圍):PROXY_ONLY_SUBNET_RANGE
- Protocols and ports (通訊協定和通訊埠):選擇「Specified protocols and ports」(指定的通訊協定和通訊埠)
- 選取「TCP」TCP,然後輸入
80
做為「Port number」(通訊埠編號)。 - 按一下 [建立]。
- Name (名稱):
gcloud
建立
fw-allow-health-check-and-proxy
規則,允許 Google Cloud 健康檢查在 TCP 通訊埠80
上存取後端執行個體:gcloud compute firewall-rules create fw-allow-health-check \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80
為僅限 Proxy 的子網路建立允許輸入的防火牆規則,以便負載平衡器與 TCP 通訊埠
80
上的後端執行個體通訊:gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-proxy-only-subnet \ --source-ranges=PROXY_ONLY_SUBNET_RANGE \ --rules=tcp:80
設定可用區 NEG
針對以 Google Cloud為基礎的後端,建議您在設定混合式連線的相同區域中,設定多個區域 NEG。
在本例中,我們會在 REGION 地區中設定區域性 NEG (含 GCE_VM_IP_PORT
類型端點)。首先,請在 GCP_NEG_ZONE 區域中建立 VM。接著,請在相同的 GCP_NEG_ZONE 中建立區域 NEG,並將 VM 的網路端點新增至 NEG。
建立 VM
主控台
- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
前往「VM instances」(VM 執行個體) - 點選「建立執行個體」。
- 將「Name」(名稱) 設為
vm-a1
。 - 在「區域」部分,選擇 REGION,然後選擇任何「可用區」。這個值在本程序中會稱為 GCP_NEG_ZONE。
- 在「Boot disk」(開機磁碟) 專區中,確認已為開機磁碟選項選取「Debian GNU/Linux 12 (bookworm)」。如有需要,請按一下「Choose」(選擇),以變更圖片。
按一下「進階選項」,然後進行下列變更:
- 按一下「Networking」(網路),然後新增下列「Network tags」(網路標記):
allow-ssh
、allow-health-check
和allow-proxy-only-subnet
。 - 按一下「Network interfaces」下方的「Edit」圖示
- Network (網路):NETWORK
- Subnet (子網路):LB_SUBNET_NAME
,進行下列變更,然後按一下「Done」:
按一下 [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
- 按一下「Networking」(網路),然後新增下列「Network tags」(網路標記):
按一下 [建立]。
使用下列名稱和區域組合,重複執行以下步驟來建立第二個 VM:
- 名稱:
vm-a2
,區域:GCP_NEG_ZONE
- 名稱:
gcloud
使用下列組合建立 VM 的名稱和區域,執行以下指令兩次來建立 VM。兩個 VM 的指令碼內容皆相同。
vm-a1
和 GCP_NEG_ZONE 區域的 VM_NAMEvm-a2
和相同 GCP_NEG_ZONE 區域的 VM_NAMEgcloud compute instances create VM_NAME \ --zone=GCP_NEG_ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --subnet=LB_SUBNET_NAME \ --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'
建立可用區 NEG
主控台
如何建立可用區網路端點群組:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 按一下「建立網路端點群組」。
- 輸入區域 NEG 的名稱。在本程序中稱為 GCP_NEG_NAME。
- 選取「網路端點群組類型」:「網路端點群組 (區域性)」。
- 選取「網路」:NETWORK
- 選取「子網路」:LB_SUBNET_NAME
- 選取「區域」:GCP_NEG_ZONE
- 輸入「預設通訊埠」:
80
。 - 按一下 [建立]。
將端點新增至區域性 NEG:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network endpoint groups」(網路端點群組) - 按一下在前一個步驟中建立的網路端點群組「名稱」 (GCP_NEG_NAME)。您會看到「Network endpoint group details」頁面。
- 在「Network endpoints in this group」(這個群組中的網路端點) 區段中,按一下 [Add network endpoint] (新增網路端點]。畫面上即會出現「Add network endpoint」(新增網路端點) 頁面。
- 選取某個 VM 執行個體,將其內部 IP 位址新增為網路端點。在「Network interface」部分,系統會顯示 VM 的名稱、區域和子網路。
- 在「IPv4 位址」欄位中,輸入新網路端點的 IPv4 位址。
- 選取「Port type」(通訊埠類型)。
- 如果您選取「預設」,則端點會使用網路端點群組中所有端點的預設通訊埠
80
。這對我們的範例來說已足夠,因為 Apache 伺服器會透過通訊埠80
提供要求。 - 如果您選取「Custom」(自訂),請輸入端點要使用的「Port number」(通訊埠編號)。
- 如果您選取「預設」,則端點會使用網路端點群組中所有端點的預設通訊埠
- 如要新增更多端點,請按一下「Add network endpoint」(新增網路端點),然後重複執行上述步驟。
- 新增所有端點後,按一下「建立」。
gcloud
使用
gcloud compute network-endpoint-groups create
指令建立區域性 NEG (含GCE_VM_IP_PORT
端點):gcloud compute network-endpoint-groups create GCP_NEG_NAME \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=GCP_NEG_ZONE \ --network=NETWORK \ --subnet=LB_SUBNET_NAME
您可以在這個步驟中建立 NEG 時指定
--default-port
,或是為每個端點指定通訊埠號碼,如下一個步驟所示。將端點新增至 GCP_NEG_NAME。
gcloud compute network-endpoint-groups update GCP_NEG_NAME \ --zone=GCP_NEG_ZONE \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,port=80'
設定混合式連線 NEG
建立 NEG 時,請使用區域,以盡量縮短 Google Cloud 與地端部署或其他雲端環境之間的地理距離。舉例來說,如果您在德國法蘭克福的內部環境中代管服務,則可以在建立 NEG 時指定 europe-west3-a
Google Cloud 區域。
此外,如果您使用 Cloud Interconnect,用於建立 NEG 的區域應位於設定 Cloud Interconnect 連結點的區域中。
如要瞭解可用的地區和區域,請參閱 Compute Engine 說明文件:可用的地區和區域。
主控台
如何建立混合式連線網路端點群組:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往網路端點群組 - 按一下「建立網路端點群組」。
- 輸入混合 NEG 的「名稱」。在本程序中稱為 ON_PREM_NEG_NAME。
- 選取網路端點群組類型:混合式連線網路端點群組 (可用區)。
- 選取「網路」:NETWORK
- 選取「子網路」:LB_SUBNET_NAME
- 選取「區域」:ON_PREM_NEG_ZONE
- 輸入「預設通訊埠」。
- 按一下 [建立]。
將端點新增至混合式連線 NEG:
- 前往 Google Cloud 控制台的「Network Endpoint Groups」(網路端點群組) 頁面。
前往「Network Endpoint Groups」(網路端點群組) 頁面 - 按一下在前一個步驟建立的網路端點群組的「名稱」 (ON_PREM_NEG_NAME)。您會看到「Network endpoint group detail」頁面。
- 在「Network endpoints in this group」(這個群組中的網路端點) 區段中,按一下 [Add network endpoint] (新增網路端點]。畫面上即會出現「Add network endpoint」(新增網路端點) 頁面。
- 輸入新網路端點的「IP 位址」。
- 選取「Port type」(通訊埠類型)。
- 如果您選取「預設」,則端點會使用網路端點群組中所有端點的預設通訊埠。
- 如果您選取「Custom」(自訂),可以輸入端點要使用的不同「Port number」(通訊埠編號)。
- 如要新增更多端點,請按一下「Add network endpoint」(新增網路端點),然後重複執行上述步驟。
- 新增所有非Google Cloud 端點後,請按一下「建立」。
gcloud
使用
gcloud compute network-endpoint-groups create
指令建立混合式連線 NEG。gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \ --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \ --zone=ON_PREM_NEG_ZONE \ --network=NETWORK
將內部部署後端 VM 端點新增至 ON_PREM_NEG_NAME:
gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \ --zone=ON_PREM_NEG_ZONE \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
您可以使用這個指令,新增先前在內部部署環境或雲端環境中設定的網路端點。視需要重複執行 --add-endpoint
。
如有需要,您可以重複執行這些步驟來建立多個混合型 NEG。
設定負載平衡器
使用區域和混合 NEG 後端建立負載平衡器。
主控台
gcloud
- 為後端建立健康狀態檢查。
混合 NEG 後端的健康狀態檢查探測來自僅限 Proxy 的子網路中的 Envoy Proxy,而區域 NEG 後端的探測來自 [Google 的中央探測 IP 範圍](/load-balancing/docs/health-check-concepts#ip-ranges)。gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
- 建立後端服務。您同時將區域 NEG 和混合式連線 NEG 新增為此後端服務的後端。
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=REGION \ --region=REGION
- 將區域 NEG 新增至後端服務,做為後端使用。
如要進一步瞭解如何設定平衡模式,請參閱 gcloud CLI 說明文件中的gcloud compute backend-services add-backend BACKEND_SERVICE \ --region=REGION \ --balancing-mode=RATE \ --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \ --network-endpoint-group=GCP_NEG_NAME \ --network-endpoint-group-zone=GCP_NEG_ZONE
--max-rate-per-endpoint
參數。 - 將混合 NEG 新增至後端服務,做為後端使用。
如要進一步瞭解如何設定平衡模式,請參閱 gcloud CLI 說明文件中的gcloud compute backend-services add-backend BACKEND_SERVICE \ --region=REGION \ --balancing-mode=RATE \ --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \ --network-endpoint-group=ON_PREM_NEG_NAME \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE
--max-rate-per-endpoint
參數。 - 建立網址對應,將連入的要求轉送至後端服務:
gcloud compute url-maps create URL_MAP_NAME \ --default-service BACKEND_SERVICE \ --region=REGION
- 選用步驟:如果您在用戶端和負載平衡器之間使用 HTTPS,請執行這個步驟。HTTP 負載平衡器不需要執行這個步驟。
您可以建立 Compute Engine 或憑證管理工具憑證。請使用下列任一方法,透過憑證管理工具建立憑證:
- 區域性自行管理憑證。如要進一步瞭解如何建立及使用區域性自行管理憑證,請參閱「部署區域性自行管理憑證」一文。不支援憑證對應。
區域性 Google 代管憑證。不支援憑證對應。
Certificate Manager 支援下列類型的區域性 Google 代管憑證:
- 區域性 Google 代管憑證,並具備個別專案 DNS 授權。詳情請參閱「部署區域性 Google 代管憑證」。
- 區域性 Google 代管 (私人) 憑證 (搭配憑證授權單位服務)。 詳情請參閱「透過 CA 服務部署區域性 Google 代管憑證」。
建立憑證後,請直接將憑證附加至目標 Proxy。
建立 Compute Engine 自行管理的 SSL 憑證資源:gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate CRT_FILE_PATH \ --private-key KEY_FILE_PATH
- 建立目標 HTTP(S) Proxy,將要求轉送至您的網址對應。
如要建立 HTTP 負載平衡器,請建立 HTTP 目標 Proxy: 如要建立 HTTPS 負載平衡器,請建立 HTTPS 目標 Proxy。Proxy 是負載平衡器的一部分,用於保存 HTTPS 負載平衡的 SSL 憑證,因此您還可以在此步驟中載入憑證。gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
- 建立轉送規則,將傳入要求轉送至 Proxy。請勿使用僅限 Proxy 的子網路建立轉送規則。
HTTP 負載平衡器: HTTPS 負載平衡器:gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --ports=80 \ --region=REGION \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --target-http-proxy-region=REGION
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --ports=443 \ --region=REGION \ --target-http-proxy=TARGET_HTTPS_PROXY_NAME \ --target-http-proxy-region=REGION
將網域連結至負載平衡器
建立負載平衡器後,請記下與負載平衡器相關聯的 IP 位址,例如 30.90.80.100
。如要將網域指向負載平衡器,請使用網域註冊服務建立 A
記錄。如果您在 SSL 憑證中新增了多個網域,則必須為每個網域新增 A
記錄,並全部指向負載平衡器的 IP 位址。舉例來說,如要為 www.example.com
和 example.com
建立 A
記錄,請使用以下方法:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
如果您使用 Cloud DNS 做為 DNS 供應商,請參閱「新增、修改及刪除記錄」。
測試負載平衡器
負載平衡器已設定完成,您可以開始將流量傳送至負載平衡器的 IP 位址。
- 前往 Google Cloud 控制台的「負載平衡」頁面。
前往「負載平衡」 - 按一下剛剛建立的負載平衡器。
- 記下負載平衡器的 IP 位址。
將流量傳送至負載平衡器。
如果您已建立 HTTP 負載平衡器,請前往
http://IP_ADDRESS
,即可使用網路瀏覽器測試負載平衡器。將IP_ADDRESS
替換為負載平衡器的 IP 位址。系統應會將您導向透過端點公開的服務。如果您建立了 HTTPS 負載平衡器,可以使用
curl
測試負載平衡器,如下所示。請將IP_ADDRESS
替換為負載平衡器的 IP 位址。系統應會將您導向透過端點公開的服務。curl -k https://IP_ADDRESS
如果問題仍未解決,且您使用的是 Google 代管的憑證,請確認憑證資源狀態為「ACTIVE」(有效)。如需詳細資訊,請參閱「Google 代管的 SSL 憑證資源狀態」。接著測試指向負載平衡器 IP 位址的網域。例如:
curl -s https://DOMAIN_NAME
將 DOMAIN_NAME 替換為應用程式網域名稱,例如
test.example.com
。
測試非Google Cloud 端點取決於您透過混合 NEG 端點公開的服務。