将服务子网从对等互连迁移到 Private Service Connect
本文档介绍了服务提供方如何将基于对等互连的服务迁移到 Private Service Connect,并保留用于访问服务的 IP 地址。此迁移过程要求与给定子网相关联的所有资源必须同时迁移。
迁移过程由服务提供方发起,但涉及由提供方和使用方共同完成的任务。Google 管理的服务可以使用服务代理代表使用方执行任务。迁移涉及停机时间,并且提供方和使用方都会发生价格变动。
每个服务提供方都会决定是否以及何时迁移到 Private Service Connect。如需了解服务提供方是否正在从 VPC 网络对等互连迁移到 Private Service Connect,请查看服务文档或与服务提供方联系。
准备工作
- 确保您了解迁移过程,包括迁移注意事项。
- 请确保您了解 Private Service Connect 使用方和提供方的价格。
- 请确保您熟悉通过 Private Service Connect 发布服务。
使用 Private Service Connect 部署服务
创建新的 VPC 网络,在该网络中部署服务资源,并通过 Private Service Connect 发布服务。
为服务创建负载均衡器时,请使用与负载均衡器之前使用的 IP 地址不同的 IP 地址。稍后需要使用原始 IP 地址创建端点。
发布服务时,您需要创建服务连接。稍后还需要使用服务连接 URI 来创建端点。
关停基于对等互连的服务
如需关停基于对等互连的服务,您必须先创建一个内部范围来预留服务的 IP 地址范围,然后再删除提供方子网。
创建内部范围
在删除提供方子网之前,请创建一个内部范围,以防止该子网的 IP 地址范围被提供方或使用方网络中的其他子网重复使用。
如需详细了解此内部范围,请参阅用于迁移的内部范围。
gcloud
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
:使用方项目的 IDCONSUMER_NETWORK
:使用方网络的名称CIDR_RANGE
:要分配给新子网的 CIDR 范围;此范围必须与内部范围的 CIDR 范围匹配REGION
:要在其中创建子网的区域
创建 Private Service Connect 端点
在使用方的对等迁移子网中创建 Private Service Connect 端点。使用方需要服务连接 URI 才能创建端点。
gcloud
为端点预留内部 IP 地址。
gcloud compute addresses create ENDPOINT_ADDRESS_NAME \ --project=CONSUMER_PROJECT \ --region=REGION \ --address=ENDPOINT_ADDRESS \ --subnet=CONSUMER_SUBNET
替换以下内容:
ENDPOINT_ADDRESS_NAME
:IP 地址资源的名称CONSUMER_PROJECT
:使用方项目的 IDREGION
:要在其中创建 IP 地址的区域ENDPOINT_ADDRESS
:要分配给 IP 地址资源的 IP 地址;此地址必须与服务的负载均衡器中使用的 IP 地址相同CONSUMER_SUBNET
:使用方子网的名称
创建端点。
使用
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
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 网络对等互连提供。
- 如果它仍然存在,请在提供方项目中删除内部范围。
在使用方项目中创建内部范围。回滚时,迁移来源是使用方子网,迁移目标是提供方子网。
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
删除使用方的 Private Service Connect 端点。
删除使用方的 IP 地址资源。
使用相同的名称和 CIDR 范围重新创建提供方子网。将子网用途设置为
PRIVATE
。在生产方的子网中重新创建提供服务所需的资源。
使用方验证他们可以通过对等互连连接访问服务。