将服务子网从对等互连迁移到 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 地址。删除资源后,您可以删除子网。

创建使用方资源

与服务使用方合作,在其 VPC 网络中创建以下资源。您可以手动创建这些资源,也可以通过服务代理自动创建 Google 管理的服务所需的资源。

创建对等迁移子网

在使用方的 VPC 网络中创建对等迁移子网,以提供 Private Service Connect 端点的 IP 地址。子网的用途为 PEER_MIGRATION,这会阻止将子网用于 Private Service Connect 端点以外的资源。

如需了解详情,请参阅对等互连子网

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 才能创建端点。

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

验证端点是否正常运行

请使用方确认他们可以通过端点连接到服务。

如果端点无法正常运行,问题排查也无法解决问题,您可以回滚迁移

完成迁移

如果端点按预期运行,您可以通过将使用方的对等迁移子网更新为常规子网来完成迁移。

更新使用方对等迁移子网

将使用方的对等迁移子网更新为常规子网后,使用方便可将该子网用于任何类型的资源。

gcloud

使用 networks subnets create 命令

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

替换以下内容:

  • CONSUMER_SUBNET:使用方子网的名称
  • REGION:使用方子网的区域
  • CONSUMER_PROJECT:使用方项目的 ID

删除对等互连连接

如果不再需要对等互连连接,请为使用方和提供方删除对等互连配置

回滚迁移

只有在使用方子网尚未更新为常规子网时,您才能回滚迁移。如果您回滚,则服务将通过 VPC 网络对等互连提供。

  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. 使用方验证他们可以通过对等互连连接访问服务。