設定區域性外部 Proxy 網路負載平衡器,並使用混合式連線

區域外部 Proxy 網路負載平衡器是以 Proxy 為基礎的區域第 4 層負載平衡器,可讓您透過外部區域 IP 位址,在單一區域中執行及調度 TCP 服務流量。這類負載平衡器會將來自網際網路的外部 TCP 流量,分配給相同地區的後端。

本頁說明如何設定區域外部 Proxy 網路負載平衡器,將流量負載平衡至地端環境或其他雲端環境中的後端,這些環境是透過混合式連線連線。本頁面不包含設定混合式連線,將網路連線至 Trusted Cloud 的說明。

開始之前,請先閱讀外部 Proxy 網路負載平衡器總覽

在本範例中,我們將使用負載平衡器,將 TCP 流量分配到位於內部部署環境或其他雲端環境的後端 VM。

在本範例中,您將設定下圖所示的部署作業。

外部 Proxy 網路負載平衡器範例設定,使用混合 NEG 後端。
外部 Proxy 網路負載平衡器範例設定,搭配混合式 NEG 後端

這是區域性負載平衡器。所有負載平衡器元件 (後端執行個體群組、後端服務、目標 Proxy 和轉送規則) 都必須位於同一區域。

權限

如要設定混合式負載平衡,您必須具備下列權限:

  • 開啟 Trusted Cloud

    • 在 Trusted Cloud 與地端部署環境或其他雲端環境之間建立混合式連線的權限。如需必要權限清單,請參閱相關的網路連線產品說明文件
    • 具備建立混合式連線 NEG 和負載平衡器的權限。Compute 負載平衡器管理員角色 (roles/compute.loadBalancerAdmin) 包含執行本指南所述工作所需的權限。
  • 地端部署環境或其他非Trusted Cloud 雲端環境

    • 設定網路端點的權限,允許地端環境或其他雲端環境中的服務,透過Trusted Cloud 使用 IP:Port 組合存取。如需更多資訊,請與環境的網路管理員聯絡。
    • 在內部部署環境或其他雲端環境中建立防火牆規則的權限,允許 Google 健康狀態檢查探測器連線至端點。

此外,如要完成本頁的操作說明,您需要建立混合式連線 NEG、負載平衡器和區域 NEG (及其端點),做為負載平衡器的 Trusted Cloud型後端。

因此您必須是專案擁有者或編輯者,或是需要下列 Compute Engine 身分與存取權管理角色

工作 必要角色
建立網路、子網路和負載平衡器元件 Compute 網路管理員 (roles/compute.networkAdmin)
新增與移除防火牆規則 Compute 安全性管理員 (roles/compute.securityAdmin)
建立執行個體 Compute 執行個體管理員 (roles/compute.instanceAdmin)

建立混合式連線

您的地端部署環境或其他雲端環境必須透過 Trusted Cloud 混合式連線連線,方法是使用 Cloud Interconnect VLAN 連結,或透過 Cloud Router 或路由器設備 VM 使用 Cloud VPN 通道。建議您使用高可用性連線。

啟用全域動態轉送的 Cloud Router 會透過邊界閘道通訊協定 (BGP) 瞭解特定端點,並將其程式化到 Trusted Cloud 虛擬私有雲網路中。系統不支援區域動態路由。也不支援靜態路徑。

您可以使用相同網路或相同專案中的不同虛擬私有雲網路,設定混合式網路 (Cloud Interconnect、Cloud VPN 或 Router 設備 VM) 和負載平衡器。注意事項:

  • 如果使用不同的虛擬私有雲網路,這兩個網路必須透過虛擬私有雲網路對等互連連線,或是必須是相同 Network Connectivity Center 中樞上的 VPC 輪輻

  • 如果使用相同的 VPC 網路,請確保 VPC 網路的子網路 CIDR 範圍與遠端 CIDR 範圍沒有衝突。如果 IP 位址重疊,系統會優先處理子網路路徑,而非遠端連線。

如需操作說明,請參閱下列文件:

設定外部環境 Trusted Cloud

如要為混合式負載平衡設定地端環境或其他雲端環境,請按照下列步驟操作:

  • 設定網路端點,將地端服務公開給Trusted Cloud (IP:Port)。
  • 在內部部署環境或其他雲端環境中設定防火牆規則。
  • 設定 Cloud Router,向您的私有環境通告特定必要路徑。

設定網路端點

設定混合式連線後,您可以使用 IP:port 組合,在內部部署環境或其他雲端環境中,設定一或多個可透過 Cloud Interconnect、Cloud VPN 或路由器設備連線的網路端點。這個IP:port組合會設定為混合式連線 NEG 的一或多個端點,並在稍後的程序中建立。 Trusted Cloud

如果 IP 端點有多個路徑,路由會遵循Cloud Router 總覽中說明的行為。

設定防火牆規則

您必須在內部部署環境或其他雲端環境中建立下列防火牆規則:

  • 在內部部署或其他雲端環境中建立防火牆允許輸入規則,允許來自該區域僅限 Proxy 的子網路的流量連上端點。
  • 混合式 NEG 不必允許來自 Google 健康狀態檢查探測範圍的流量。不過,如果您在單一後端服務中同時使用混合式和區域 NEG,則必須允許區域 NEG 接收來自 Google 健康狀態檢查探測範圍的流量。

設定 Cloud Router,向地端部署環境或其他雲端環境通告下列自訂 IP 範圍

  • 區域僅限 Proxy 子網路的範圍。

設定 Trusted Cloud 環境

在後續步驟中,請務必使用相同的虛擬私有雲網路 (在本程序中稱為 NETWORK),該網路用於設定環境之間的混合式連線。您可以從這個網路選取任何子網路,保留負載平衡器的 IP 位址並建立負載平衡器。在本程序中,這個子網路稱為 LB_SUBNET

此外,請確認使用的區域 (在本程序中稱為 REGION_A) 與建立 Cloud VPN 通道或 Cloud Interconnect VLAN 連結時使用的區域相同。

設定僅限 Proxy 的子網路

僅限 Proxy 的子網路提供一組 IP 位址,供 Google 代表您執行 Envoy Proxy。Proxy 會終止來自用戶端的連線,並建立與後端的新連線。

這個 Proxy 專用子網路會由虛擬私有雲網路 (NETWORK) 區域 (REGION_A) 中的所有 Envoy 型區域負載平衡器使用。

每個地區和每個虛擬私有雲網路只能有一個有效的僅限 Proxy 子網路。如果這個區域已有僅限 Proxy 的子網路,則可略過這個步驟。

主控台

如果您使用 Trusted Cloud 控制台,可以稍後在「Load balancing」(負載平衡) 頁面中建立僅限 Proxy 的子網路。

如要立即建立僅限 Proxy 的子網路,請按照下列步驟操作:

  1. 在 Trusted Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 前往用於設定環境間混合連線的網路。

  3. 按一下 [新增子網路]

  4. 在「Name」(名稱) 中輸入 proxy-only-subnet

  5. 在「Region」(區域) 中選取 REGION_A

  6. 將「用途」設為「區域受管理 Proxy」

  7. 在「IP address range」(IP 位址範圍) 中,輸入 10.129.0.0/23

  8. 按一下「新增」

gcloud

如要建立僅限 Proxy 的子網路,請使用 gcloud compute networks subnets create 指令

gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=REGION_A \
    --network=NETWORK \
    --range=10.129.0.0/23

保留負載平衡器的 IP 位址

為負載平衡器保留靜態 IP 位址。

主控台

  1. 前往 Trusted Cloud 控制台的「Reserve a static address」(預約靜態位址) 頁面。

    前往「保留靜態位址」頁面

  2. 選擇新位址的名稱。

  3. 在「Network Service Tier」(網路服務級別) 部分,選取「Standard」(標準)。

  4. 在「IP version」(IP 版本) 部分,選取「IPv4」。系統不支援 IPv6 位址。

  5. 在「Type」(類型) 中,選取「Regional」(地區)。

  6. 在「Region」(區域) 中選取 REGION_A

  7. 將「Attached to」(連接至) 選項保留為「None」(無)。建立負載平衡器後,這個 IP 位址會附加至負載平衡器的轉送規則。

  8. 按一下「預約」,預約 IP 位址。

gcloud

  1. 如要保留靜態外部 IP 位址,請使用 gcloud compute addresses create 指令

    gcloud compute addresses create ADDRESS_NAME  \
       --region=REGION_A \
       --network-tier=STANDARD
    

    ADDRESS_NAME 替換為您要稱呼此位址的名稱。

  2. 如要查看結果,請使用 gcloud compute addresses describe 指令

    gcloud compute addresses describe ADDRESS_NAME
    

設定混合式連線 NEG

建立 NEG 時,請使用 ZONE,盡量縮短 Trusted Cloud 與內部部署或其他雲端環境之間的地理距離。舉例來說,如果您在德國法蘭克福的內部部署環境中代管服務,建立 NEG 時可以指定 europe-west3-a Trusted Cloud 可用區。

此外,您用來建立 NEG 的可用區,應與為混合式連線設定 Cloud VPN 通道或 Cloud Interconnect VLAN 連結的區域相同。

如要瞭解可用的區域和可用區,請參閱 Compute Engine 說明文件中的「Available regions and zones」。

主控台

建立混合式連線 NEG

  1. 前往 Trusted Cloud 控制台的「Network endpoint groups」(網路端點群組) 頁面。

    前往網路端點群組

  2. 按一下「建立網路端點群組」

  3. 在「Name」(名稱) 中輸入 HYBRID_NEG_NAME

  4. 在「網路端點群組類型」部分,選取「混合式連線網路端點群組 (可用區)」

  5. 在「Network」(網路) 中選取 NETWORK

  6. 在「Subnet」(子網路) 中,選取 LB_SUBNET

  7. 在「Zone」(可用區) 中選取 HYBRID_NEG_ZONE

  8. 在「預設通訊埠」中選取預設值。

  9. 在「Maximum connections」(連線數上限) 中輸入 2

  10. 點選「建立」

將端點新增至混合式連線 NEG

  1. 前往 Trusted Cloud 控制台的「Network endpoint groups」(網路端點群組) 頁面。

    前往網路端點群組

  2. 按一下您在上一個步驟建立的網路端點群組名稱 (HYBRID_NEG_NAME)。

  3. 在「網路端點群組詳細資料」頁面的「這個群組中的網路端點」區段中,按一下「新增網路端點」

  4. 在「Add network endpoint」(新增網路端點) 頁面中,輸入新網路端點的 IP 位址。

  5. 選取「Port type」(通訊埠類型)

    • 如果您選取「預設」,則端點會使用網路端點群組中所有端點的預設通訊埠。
    • 如果選取「自訂」,您可以輸入端點要使用的其他通訊埠編號。
  6. 如要新增更多端點,請按一下「新增網路端點」,然後重複以上步驟。

  7. 新增所有非Trusted Cloud 端點後,按一下「建立」

gcloud

  1. 如要建立混合式連線 NEG,請使用 gcloud compute network-endpoint-groups create 指令

    gcloud compute network-endpoint-groups create HYBRID_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=HYBRID_NEG_ZONE \
        --network=NETWORK
     
  2. 將地端 IP:Port 端點新增至混合 NEG:

    gcloud compute network-endpoint-groups update HYBRID_NEG_NAME \
        --zone=HYBRID_NEG_ZONE \
        --add-endpoint="ip=ENDPOINT_IP_ADDRESS,port=ENDPOINT_PORT"
    

您可以使用這項指令,新增先前在內部部署或雲端環境中設定的網路端點。視需要重複執行 --add-endpoint

如有需要,您可以重複執行這些步驟,建立多個混合 NEG。

設定負載平衡器

主控台

開始設定

  1. 前往 Trusted Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「Load balancing」(負載平衡) 頁面

  2. 點選「建立負載平衡器」
  3. 在「負載平衡器類型」部分,選取「網路負載平衡器 (TCP/UDP/SSL)」,然後點選「下一步」
  4. 在「Proxy or passthrough」(直通或使用 Proxy) 部分,選取「Proxy load balancer」(Proxy 負載平衡器),然後點選「Next」(下一步)
  5. 在「公開或內部」部分選取「公開 (外部)」,接著點選「下一步」
  6. 在「Global or single region deployment」(全域或單一區域部署) 部分,選取「Best for regional workloads」(最適合區域工作負載),然後點選「Next」(下一步)
  7. 按一下「Configure」(設定)

基本設定

  1. 在「Name」(名稱) 中輸入負載平衡器的名稱。
  2. 在「Region」(區域) 中選取 REGION_A
  3. 在「Network」(網路) 中選取 NETWORK

保留僅限 Proxy 子網路

  1. 按一下「保留子網路」
  2. 在「Name」(名稱) 中輸入 proxy-only-subnet
  3. 在「IP address range」(IP 位址範圍) 中,輸入 10.129.0.0/23
  4. 按一下「新增」

設定後端

  1. 按一下「後端設定」
  2. 在「Backend type」(後端類型) 部分,選取「Hybrid connectivity network endpoint group (Zonal)」(混合式連線網路端點群組 (可用區))
  3. 在「Protocol」(通訊協定) 欄中,選取「TCP」
  4. 在「健康狀態檢查」清單中,按一下「建立健康狀態檢查」,然後輸入下列資訊:
    • 在「Name」(名稱) 欄位中,輸入健康狀態檢查的名稱。
    • 在「通訊協定」清單中,選取「TCP」
    • 在「連接埠」清單中輸入 80
  5. 點選「建立」
  6. 在「New backend」(新後端) 部分,選取先前建立的混合 NEG (HYBRID_NEG_NAME)。或者,您也可以點選「Create a network endpoint group」(建立網路端點群組),立即建立混合 NEG。如需設定 NEG 的指引,請參閱「設定混合式 NEG」。
  7. 保留其餘預設值,然後按一下「完成」
  8. 在 Trusted Cloud 控制台中,確認「後端設定」旁顯示勾號。如未顯示,請重新檢查一遍,確認是否已完成所有步驟。

設定前端

  1. 按一下「前端設定」
  2. 在「Name」部分,輸入轉送規則的名稱。
  3. 在「Network Service Tier」(網路服務級別) 部分,選取「Standard」(標準)。
  4. 在「IP address」(IP 位址) 的部分,選取「LB_IP_ADDRESS」。
  5. 在「Port number」(通訊埠編號) 中,輸入介於 1 至 65535 之間的任一通訊埠編號。轉送規則只會轉送目的地通訊埠相符的封包。
  6. 只有在與內部部署或其他雲端端點上執行的服務相容時,才啟用「Proxy 通訊協定」。舉例來說,PROXY 通訊協定不適用於 Apache HTTP Server 軟體。詳情請參閱「PROXY 通訊協定」。
  7. 按一下 [完成]
  8. 在 Trusted Cloud 控制台中,確認「Frontend configuration」(前端設定) 旁顯示勾號。如未顯示,請重新檢查一遍,確認您是否已完成上述所有步驟。

檢查並完成

  1. 按一下 [Review and finalize] (檢查並完成)
  2. 重新檢查一遍您的設定。
  3. 點選「建立」

gcloud

  1. 為後端建立區域健康狀態檢查:

    gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \
        --region=REGION_A \
        --use-serving-port
    
  2. 建立後端服務:

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=TCP \
       --region=REGION_A \
       --health-checks=TCP_HEALTH_CHECK_NAME \
       --health-checks-region=REGION_A
    
  3. 將混合式 NEG 後端新增至後端服務:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
       --network-endpoint-group=HYBRID_NEG_NAME \
       --network-endpoint-group-zone=HYBRID_NEG_ZONE \
       --region=REGION_A \
       --balancing-mode=CONNECTION \
       --max-connections=MAX_CONNECTIONS
    

    針對 MAX_CONNECTIONS,輸入後端應處理的並行連線數量上限。

  4. 建立目標 TCP Proxy:

    gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \
       --backend-service=BACKEND_SERVICE_NAME \
       --region=REGION_A
    
  5. 建立轉送規則。使用 gcloud compute forwarding-rules create 指令。請將 FWD_RULE_PORT 替換為介於 1 至 65535 之間的單一通訊埠號碼。轉送規則只會轉送目的地通訊埠相符的封包。

    gcloud compute forwarding-rules create FORWARDING_RULE \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network=NETWORK \
       --network-tier=STANDARD \
       --address=LB_IP_ADDRESS \
       --ports=FWD_RULE_PORT \
       --region=REGION_A \
       --target-tcp-proxy=TARGET_TCP_PROXY_NAME \
       --target-tcp-proxy-region=REGION_A
    

測試負載平衡器

您已設定好負載平衡器,現在可以測試將流量傳送至負載平衡器的 IP 位址。

  1. 取得負載平衡器的 IP 位址。

    如要取得 IPv4 位址,請執行下列指令:

    gcloud compute addresses describe ADDRESS_NAME
    
  2. 執行下列指令,將流量傳送至負載平衡器。將 LB_IP_ADDRESS 替換為負載平衡器的 IPv4 位址。

    curl -m1 LB_IP_ADDRESS:FWD_RULE_PORT
    

後續步驟