使用 Hybrid Subnets 將工作負載遷移至 Google Cloud

Hybrid Subnets 可協助您將工作負載從地端部署網路遷移至虛擬私有雲 (VPC) 網路,不必變更任何 IP 位址。本文說明如何設定混合式子網路路由、測試地端部署和虛擬私有雲網路共用的 CIDR 區塊連線,以及從地端部署網路遷移工作負載。

事前準備

確認您已完成「準備 Hybrid Subnets 連線」中的步驟。

啟用混合型子網路轉送

如要支援地端部署與虛擬私有雲網路之間的內部連線,且這些網路共用 CIDR 區塊,您需要至少一個已啟用混合式子網路路由的子網路。

使用混合型子網路路由的子網路必須符合下列規定:

  • 必須與 Cloud Router 和高可用性 VPN 通道或 VLAN 連結位於相同區域,才能提供混合式連線。
  • 子網路的 IPv4 位址範圍必須與代管要遷移工作負載的內部部署網路 IP 位址範圍相符。

建立新子網路時,您可以啟用混合式子網路路由,也可以更新現有子網路來啟用這項功能。

建立啟用混合型子網路路由的新子網路

如要建立啟用混合子網路路由的新子網路,請執行下列操作。

控制台

  1. 前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。

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

  2. 按一下要設定混合式子網路路由的虛擬私有雲網路名稱。

  3. 按一下「子網路」分頁標籤。

  4. 按一下 [Add subnet] (新增子網路)。在顯示的面板中:

    1. 提供名稱。
    2. 請選取區域。
    3. 在「用途」部分中,選取「無」
    4. 在「堆疊類型」部分,選取「IPv4 (單一堆疊)」
    5. 在「IPv4 range」(IPv4 範圍) 欄位中,輸入這個子網路與要遷移的工作負載共用的 CIDR 區塊。
    6. 在「混合式子網路」區段中,選取「開啟」
    7. 按一下「新增」。

gcloud

使用 gcloud compute networks subnets create 指令。

gcloud compute networks subnets create SUBNET \
    --network=NETWORK \
    --region=REGION \
    --range=RANGE \
    --allow-cidr-routes-overlap

更改下列內容:

  • SUBNET:子網路名稱
  • NETWORK:子網路虛擬私有雲網路的名稱
  • RANGE:這個子網路與要遷移的工作負載共用的 CIDR 區塊。
  • REGION:子網路的區域

API

  1. 建立新的子網路,並啟用混合型子網路路由。

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • REGION:子網路的區域
    • SUBNET:子網路名稱
    • NETWORK_NAME:子網路虛擬私有雲網路的名稱
    • RANGE:這個子網路與您要遷移的工作負載共用的 CIDR 區塊。

    HTTP 方法和網址:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks

    JSON 要求主體:

    {
      "name": "SUBNET",
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "ipCidrRange": "RANGE",
      "allowSubnetCidrRoutesOverlap": true
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

    {
      "kind": "compute#operation",
      "id": "5973660558170953708",
      "name": "operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6",
      "operationType": "insert",
      "targetLink": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1/subnetworks/subnet-name",
      "targetId": "5514771331600183201",
      "status": "RUNNING",
      "user": "user@gmail.com",
      "progress": 0,
      "insertTime": "2023-03-31T11:40:03.882-07:00",
      "startTime": "2023-03-31T11:40:03.893-07:00",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1/operations/operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6",
      "region": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1"
    }
    

為現有子網路啟用混合型子網路路由

如要為現有子網路啟用混合式子網路路由,請按照下列步驟操作。

控制台

  1. 前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。

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

  2. 按一下包含要更新子網路的虛擬私有雲網路名稱。

  3. 按一下「子網路」分頁標籤。

  4. 按一下要更新的子網路。

  5. 按一下 [編輯]

  6. 在「混合式子網路」區段中,選取「開啟」

  7. 按一下 [儲存]

gcloud

使用 gcloud compute networks subnets update 指令。

gcloud compute networks subnets update SUBNET \
    --region=REGION \
    --allow-cidr-routes-overlap

更改下列內容:

  • SUBNET:子網路名稱
  • REGION:子網路的區域

API

  1. 找出子網路的 fingerprint ID。

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • REGION:子網路的區域
    • SUBNET_NAME:子網路名稱

    HTTP 方法和網址:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

    {
      "kind": "compute#subnetwork",
      "id": "5514771331600183201",
      "creationTimestamp": "2022-09-16T12:41:02.010-07:00",
      "name": "subnet-name",
      "network": "https://www.googleapis.com/compute/v1/projects/project-name/global/networks/network-name",
      "ipCidrRange": "10.6.0.0/16",
      "gatewayAddress": "10.6.0.1",
      "region": "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1/subnetworks/subnet-name",
      "privateIpGoogleAccess": true,
      "fingerprint": "YiItidAFRsA5",
      "allowSubnetCidrRoutesOverlap": false,
      "enableFlowLogs": true,
      "privateIpv6GoogleAccess": "DISABLE_GOOGLE_ACCESS",
      "purpose": "PRIVATE",
      "stackType": "IPV4_ONLY"
    }
    

  2. 啟用混合型子網路轉送。

    使用任何要求資料之前,請將 SUBNET_FINGERPRINT 替換為您在上一個要求中找到的子網路指紋 ID,例如 YiItidAFRsA5

    HTTP 方法和網址:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

    JSON 要求主體:

    {
      "allowSubnetCidrRoutesOverlap": true,
      "fingerprint": "SUBNET_FINGERPRINT"
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

    {
      "kind": "compute#operation",
      "id": "5973660558170953708",
      "name": "operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6",
      "operationType": "compute.subnetworks.patch",
      "targetLink": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1/subnetworks/subnet-name",
      "targetId": "5514771331600183201",
      "status": "RUNNING",
      "user": "user@gmail.com",
      "progress": 0,
      "insertTime": "2023-03-31T11:40:03.882-07:00",
      "startTime": "2023-03-31T11:40:03.893-07:00",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1/operations/operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6",
      "region": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1"
    }
    

  3. 如要確認子網路已啟用 allowSubnetCidrRoutesOverlap,請再次發出 GET 要求,並確認回應包含下列項目:

    • "allowSubnetCidrRoutesOverlap": true

測試從虛擬私有雲網路到地端部署網路的連線

如要測試虛擬私有雲網路與地端部署網路在共用 CIDR 區塊之間的連線,請執行下列操作:

  1. 在採用混合子網路路徑的子網路中建立測試 VM
  2. 記下測試 VM 的主要內部 IPv4 位址
  3. 在包含測試 VM 的虛擬私有雲網路中,針對相關的 Cloud Router BGP 工作階段設定自訂通告,包括與測試 VM 主要內部 IPv4 位址相符的特定/32自訂路徑通告。詳情請參閱 Cloud Router 說明文件中的「通告路徑」和「通告自訂位址範圍」。
  4. 確認地端部署網路和虛擬私有雲網路中的防火牆規則,允許從地端部署系統連線至測試 VM (TCP 和 ICMP)。
  5. 使用 SSH 連線至 VM
  6. 在作業系統提示中,使用 ping 指令測試與地端部署網路中系統的連線。

移動工作負載並更新路徑

每次遷移工作負載或工作負載群組時,請一併完成下列步驟。

遷移工作負載

使用偏好的方法,將工作負載和 VM 從地端部署網路遷移至虛擬私有雲網路。

如要瞭解遷移選項,請參閱「遷移選項」。

更新自訂 advertise 路由

將 VM 遷移至 Google Cloud時,請更新 Cloud Router BGP 工作階段的自訂通告路徑,納入每個遷移 VM 的主要內部 IPv4 位址。

如果是連續的 IP 位址區塊,請盡可能將位址整合到較少的自訂廣告中。通告必須比啟用混合式子網路路由的子網路 IPv4 位址範圍更明確 (子網路遮罩更長)。

從地端部署網路測試與遷移 VM 的連線能力

如要測試與已遷移至 Google Cloud的 VM 連線,可以執行下列操作:

  1. 請務必更新管理混合式連線的 BGP 工作階段自訂通告。路徑通告必須包含遷移 VM 的內部 IP 位址。
  2. 使用 ping 指令,測試從地端部署網路中的系統到已遷移 VM IP 位址的連線。

後續步驟