將服務子網路從對等互連遷移至 Private Service Connect

本文說明服務供應商如何將以對等互連為基礎的服務遷移至 Private Service Connect,並保留用於存取服務的 IP 位址。這項遷移程序規定,連線至特定子網路的所有資源都必須同時遷移。

遷移程序由服務生產者啟動,但生產者和消費者都需要完成相關工作。Google 代管服務可使用服務代理程式,代表消費者執行工作。遷移作業會導致停機,且生產者和消費者都必須接受價格異動。

各服務供應商會決定是否要遷移至 Private Service Connect,以及遷移時間。如要瞭解服務供應商是否要從虛擬私有雲網路對接遷移至 Private Service Connect,請參閱服務說明文件或與服務供應商聯絡。

事前準備

使用 Private Service Connect 部署服務

建立新的虛擬私有雲網路,在網路中部署服務資源,然後透過 Private Service Connect 發布服務

為服務建立負載平衡器時,請使用與負載平衡器先前使用的 IP 位址不同的位址。稍後需要原始 IP 位址來建立端點

發布服務時,您會建立服務連結。稍後建立端點時,也需要服務附件 URI。

關閉以對等互連為基礎的服務

如要關閉以對等互連為基礎的服務,您必須先建立內部範圍來預留服務的 IP 位址範圍,再刪除生產者子網路。

建立內部範圍

刪除供應商子網路之前,請先建立內部範圍,避免供應商或消費者網路中的其他子網路重複使用該子網路的 IP 位址範圍。

如要進一步瞭解這個內部範圍,請參閱遷移的內部範圍

gcloud

使用 internal-ranges create 指令。

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --project=PRODUCER_PROJECT_ID \
    --ip-cidr-range=CIDR_RANGE \
    --network=PRODUCER_NETWORK_NAME \
    --usage=FOR_MIGRATION \
    --migration-source=PRODUCER_SUBNET_URI \
    --migration-target=CONSUMER_SUBNET_URI

更改下列內容:

  • RANGE_NAME:新內部範圍的名稱。
  • PRODUCER_PROJECT_ID:生產者專案的 ID。
  • CIDR_RANGE:要分配給新內部範圍的 CIDR 範圍。
  • PRODUCER_NETWORK_NAME:要在其中建立內部範圍的網路名稱。
  • PRODUCER_SUBNET_URI:生產者子網路的 URI,其中包含服務的負載平衡器。
  • CONSUMER_SUBNET_URI:預期消費者子網路的 URI。執行這項指令時,這個子網路不存在。

刪除對等互連生產者子網路

您必須先刪除生產者子網路中的所有資源 (例如虛擬機器 (VM) 執行個體、轉送規則、執行個體群組、健康狀態檢查和保留的 IP 位址),才能刪除子網路。刪除資源後,即可刪除子網路

建立消費者資源

與服務用戶合作,在他們的虛擬私有雲網路中建立下列資源。您可以手動建立資源,也可以透過服務代理程式,自動建立 Google 代管服務的資源。

建立對等遷移子網路

在消費者的 VPC 網路中建立對等互連移轉子網路,為 Private Service Connect 端點提供 IP 位址。子網路具有 PEER_MIGRATION 用途,可防止子網路用於 Private Service Connect 端點以外的資源。

詳情請參閱「對等互連遷移子網路」。

控制台

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

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

  2. 按一下虛擬私有雲網路的名稱,顯示其「虛擬私有雲網路詳細資料」頁面。

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

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

    1. 提供名稱。
    2. 請選取區域。
    3. 在「用途」部分,選取「對等遷移」
    4. 在「IP stack type」(IP 堆疊類型),選取「IPv4 (single-stack)」(IPv4 (單一堆疊))
    5. 輸入要分配給新子網路的 IPv4 位址範圍。這個範圍必須與內部範圍的 CIDR 範圍相符。

      如果您選取的範圍不是 RFC 1918 位址,請確認該範圍不會與現有設定衝突。詳情請參閱「IPv4 子網路範圍」。

  5. 按一下「新增」。

gcloud

使用 networks subnets create 指令。

gcloud compute networks subnets create CONSUMER_SUBNET \
    --purpose=PEER_MIGRATION \
    --project=CONSUMER_PROJECT \
    --network=CONSUMER_NETWORK \
    --range=CIDR_RANGE \
    --region=REGION

更改下列內容:

  • CONSUMER_SUBNET:用戶子網路的名稱
  • CONSUMER_PROJECT:消費者專案的 ID
  • CONSUMER_NETWORK:用戶網路的名稱
  • CIDR_RANGE:要分配給新子網路的 CIDR 範圍;這個範圍必須與內部範圍的 CIDR 範圍相符
  • REGION:要在其中建立子網路的區域

建立 Private Service Connect 端點

在消費者對等移轉子網路中建立 Private Service Connect 端點。消費者需要服務連結 URI 才能建立端點。

控制台

  1. 前往 Google Cloud 控制台的「Private Service Connect」頁面。

    前往 Private Service Connect

  2. 按一下「已連線的端點」分頁標籤。

  3. 按一下「連結端點」

  4. 在「Target」(目標) 中選取「Published service」(發布的服務)

  5. 在「目標服務」部分,輸入要連線的服務連結 URI。

    服務連結 URI 的格式如下: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

  6. 在「端點名稱」部分,輸入要用於端點的名稱。

  7. 在「Network」(網路) 中,選取端點的消費者 VPC 網路。

  8. 在「Subnetwork」(子網路) 中,選取取用者對等互連遷移子網路。

  9. 如要為端點保留 IP 位址,請按照下列步驟操作:

    1. 按一下「IP address」(IP 位址) 下拉式選單,然後選取「Create IP address」(建立 IP 位址)
    2. 輸入 IP 位址名稱,並視需要輸入說明。
    3. 按一下「Static IP address」(靜態 IP 位址),然後選取「Let me choose」(自行選擇)
    4. 輸入要保留的自訂 IP 位址。這個 IP 位址必須與服務負載平衡器中使用的 IP 位址相同。
    5. 按一下「保留」
  10. 按一下「新增端點」

gcloud

  1. 為端點保留內部 IP 位址。

    使用 addresses create 指令。

    gcloud compute addresses create ENDPOINT_ADDRESS_NAME \
        --project=CONSUMER_PROJECT \
        --region=REGION \
        --address=ENDPOINT_ADDRESS \
        --subnet=CONSUMER_SUBNET
    

    更改下列內容:

    • ENDPOINT_ADDRESS_NAME:IP 位址資源的名稱
    • CONSUMER_PROJECT:消費者專案的 ID
    • REGION:要建立 IP 位址的區域
    • ENDPOINT_ADDRESS:要指派給 IP 位址資源的 IP 位址;這個位址必須與服務負載平衡器中使用的 IP 位址相同
    • CONSUMER_SUBNET:用戶對等互連遷移子網路的名稱
  2. 建立端點。

    使用 forwarding-rules create 指令。

    gcloud compute forwarding-rules create ENDPOINT \
        --region=REGION \
        --network=CONSUMER_NETWORK \
        --address=ENDPOINT_ADDRESS \
        --target-service-attachment=SERVICE_ATTACHMENT_URI
    

    更改下列內容:

    • ENDPOINT:端點名稱
    • REGION:要在其中建立端點的區域
    • CONSUMER_NETWORK:用戶網路的名稱
    • ENDPOINT_ADDRESS:要指派給端點的保留 IP 位址;您可以直接指定 IP 位址,或使用 IP 位址資源名稱
    • SERVICE_ATTACHMENT_URI:服務連結的 URI

刪除製作人的內部範圍

建立消費者遷移子網路後,就不再需要內部範圍,因此可以刪除。

gcloud

使用 internal-ranges delete 指令。

gcloud network-connectivity internal-ranges delete RANGE_NAME \
    --project=PRODUCER_PROJECT_ID

更改下列內容:

  • RANGE_NAME:內部範圍的名稱
  • PRODUCER_PROJECT_ID:供應商專案的 ID

確認端點是否正常運作

請消費者確認他們可以透過端點連線至服務。

如果端點無法運作,且疑難排解步驟無法解決問題,您可以復原遷移作業

完成遷移作業

如果端點運作正常,您可以將消費者的對等遷移子網路更新為一般子網路,完成遷移作業。

更新消費者的對等遷移子網路

將消費者對等移轉子網路更新為一般子網路後,消費者就能將子網路用於任何類型的資源。

控制台

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

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

  2. 按一下虛擬私有雲網路的名稱,顯示其「虛擬私有雲網路詳細資料」頁面。

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

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

  5. 按一下 [編輯]

  6. 在「用途」部分,選取「私人」

  7. 按一下 [儲存]

gcloud

使用 networks subnets create 指令。

gcloud compute networks subnets update CONSUMER_SUBNET \
    --purpose=PRIVATE \
    --region=REGION \
    --project=CONSUMER_PROJECT

更改下列內容:

  • CONSUMER_SUBNET:用戶子網路的名稱
  • REGION:消費者子網路的區域
  • CONSUMER_PROJECT:消費者專案的 ID

刪除對等互連

如果不再需要對等互連連線,請刪除消費者和生產者兩者的對等互連設定

復原遷移作業

只有在消費者子網路尚未更新為一般子網路時,才能復原遷移作業。如果復原,服務會透過虛擬私有雲網路對等互連提供。

  1. 如果內部範圍仍然存在,請在生產端專案中刪除該範圍。
  2. 在消費者專案中建立內部範圍。回溯時,遷移來源是取用者子網路,遷移目標是產生者子網路。

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --project=CONSUMER_PROJECT \
        --ip-cidr-range=CIDR_RANGE \
        --network=CONSUMER_NETWORK \
        --usage=FOR_MIGRATION \
        --migration-source=CONSUMER_SUBNET_URI \
        --migration-target=PRODUCER_SUBNET_URI
    
  3. 刪除消費者的 Private Service Connect 端點。

  4. 刪除消費者的 IP 位址資源。

  5. 使用相同的名稱和 CIDR 範圍,重新建立生產者的子網路。將子網路用途設為 PRIVATE

  6. 在生產者子網路中,重新建立提供服務所需的資源。

  7. 消費者會驗證是否能透過對等互連連線存取服務。