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

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

遷移程序是由服務供應商啟動,但涉及由供應商和消費者完成的工作。Google 代管服務可使用服務代理程式,代表使用者執行工作。遷移作業會導致生產端和取用端的服務暫時中斷,且價格也會有所變動。

每個服務供應商都會決定是否要遷移至 Private Service Connect,以及遷移的時間。如要瞭解服務供應商是否從 VPC 網路對接遷移至 Private Service Connect,請查看服務說明文件或與服務供應商聯絡。

事前準備

使用 Private Service Connect 部署服務

建立新的 VPC 網路、在網路中部署服務資源,然後透過 Private Service Connect 發布服務

為服務建立負載平衡器時,請使用與負載平衡器先前使用的 IP 位址不同的 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 代管的服務,則可以透過服務代理程式自動建立。

建立對等遷移子網路

在使用者的虛擬私有雲網路中建立對等移轉子網路,為 Private Service Connect 端點提供 IP 位址。子網路的用途為 PEER_MIGRATION,可防止子網路用於 Private Service Connect 端點以外的資源。

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

控制台

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

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

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

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

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

    1. 提供名稱。
    2. 請選取區域。
    3. 在「用途」部分中,選取「對等端遷移」
    4. 在「IP 堆疊類型」中,選取「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 位址」下拉式選單,然後選取「建立 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. 按一下虛擬私有雲網路的名稱,顯示其「VPC network details」(虛擬私有雲網路詳細資料) 頁面。

  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. 消費者驗證是否能透過對等連線存取服務。