将共享 VPC 连接器迁移到直接 VPC 出站流量

本页面适用于想要在向共享 VPC 网络发送流量时将共享 VPC 网络流量从使用无服务器 VPC 访问通道连接器迁移到使用直接 VPC 出站流量的网络专家。

与连接器相比,直接 VPC 出站流量速度更快,可处理更多流量,延迟时间更短,吞吐量更高,因为它使用新的直接网络路径而不是连接器实例。

在迁移之前,我们建议您先熟悉直接 VPC 出站流量的前提条件限制IP 地址分配IAM 权限

将服务迁移到直接 VPC 出站流量

逐步将服务迁移到直接 VPC 出站流量

将 Cloud Run 服务从无服务器 VPC 访问通道连接器迁移到直接 VPC 出站流量时,我们建议您以逐步过渡的方式执行此操作。

如需逐步转换,请执行以下操作:

  1. 按照本指南中的说明更新您的服务或作业以使用直接 VPC 出站流量。
  2. 分配一小部分流量以测试流量是否正常运行。
  3. 更新流量分配,以将所有流量都发送到使用直接 VPC 出站流量的新修订版本。

如需为服务迁移使用直接 VPC 出站流量的流量,请使用 Google Cloud 控制台或 Google Cloud CLI:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 点击您要从连接器迁移到直接 VPC 出站流量的服务,然后点击修改和部署新的修订版本

  3. 点击网络标签页。

  4. 连接到 VPC 以获取出站流量中,点击将流量直接发送到 VPC

  5. 选择与我共享的网络

  6. 网络字段中,选择您要向其发送流量的共享 VPC 网络。

  7. 子网字段中,选择您的服务用于接收 IP 地址的子网。 您可以在同一子网上部署多个服务。

  8. 可选:输入要与服务关联的网络标记的名称。网络标记在修订版本级指定。每个服务修订版本都可以有不同的网络标记,例如 network-tag-2

  9. 流量路由部分,选择以下选项之一:

    • 仅将请求路由到 VPC 的专用 IP,以便通过共享 VPC 网络将流量仅发送到内部地址。
    • 将所有流量路由到 VPC,以通过共享 VPC 网络发送所有出站流量。
  10. 点击部署

  11. 如需验证您的服务是否在共享 VPC 网络上,请点击该服务,然后点击网络标签页。VPC 卡片中列出了网络和子网。

    现在,您可以根据防火墙规则所允许将来自 Cloud Run 服务的请求直接发送到共享 VPC 网络上的任何资源。

gcloud

如需使用 Google Cloud CLI 将 Cloud Run 服务从连接器迁移到直接 VPC 出站流量,请执行以下操作:

  1. 使用以下命令为共享 VPC 网络和子网指定完全限定的资源名称,以更新共享子网上的服务:

    gcloud beta run services update SERVICE_NAME \
      --clear-network \
      --network projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK \
      --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
      --network-tags NETWORK_TAG_NAMES \
      --vpc-egress=EGRESS_SETTING \
      --region REGION \
      --max-instances MAX
      

    替换以下内容:

    • SERVICE_NAME:Cloud Run 服务的名称。
    • IMAGE_URL:服务的图片网址。
    • HOST_PROJECT_ID:共享 VPC 项目的 ID。
    • VPC_NETWORK:您的共享 VPC 网络的名称。
    • REGION:Cloud Run 服务所在的区域,该区域必须与子网的区域一致。
    • SUBNET_NAME:您的子网的名称。
    • 可选:将 NETWORK_TAG_NAMES 替换为要与服务关联的网络标记的名称。对于服务,网络标记在修订版本级指定。每个服务修订版本都可以有不同的网络标记,例如 network-tag-2
    • EGRESS_SETTING 替换为出站流量设置值
      • all-traffic:通过共享 VPC 网络发送所有出站流量。
      • private-ranges-only:仅发送通过共享 VPC 网络发送到内部地址的流量。
    • MAX:用于共享 VPC 网络的实例数上限。服务允许的实例数上限为 100。

    如需了解详情和可选的参数,请参阅 gcloud 参考文档

  2. 如需验证您的服务是否在共享 VPC 网络上,请运行以下命令:

    gcloud beta run services describe SERVICE_NAME \
    --region=REGION
    

    您需要在其中:

    • SERVICE_NAME 替换为您的服务名称。
    • REGION 替换为您在上一步中指定的服务的区域。

    输出应包含网络的名称、子网和出站流量设置,例如:

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

现在,您可以根据防火墙规则允许将来自 Cloud Run 服务的请求发送到共享 VPC 网络上的任何资源。

将作业迁移到直接 VPC 出站流量

您可以使用 Google Cloud 控制台或 Google Cloud CLI 为作业迁移使用直接 VPC 出站流量的流量。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 点击您要从连接器迁移到直接 VPC 出站流量的作业,然后点击修改

  3. 点击网络标签页。

  4. 点击容器、变量和 Secret、连接、安全性以展开作业属性页面。

  5. 点击连接标签页。

  6. 连接到 VPC 以获取出站流量中,点击将流量直接发送到 VPC

  7. 选择与我共享的网络

  8. 网络字段中,选择您要向其发送流量的共享 VPC 网络。

  9. 子网字段中,选择您的作业用于接收 IP 地址的子网。 您可以在同一子网上部署多个作业。

  10. 可选:输入要与作业关联的网络标记的名称。对于作业,网络标记在执行级指定。每个作业执行都可以具有不同的网络标记,例如 network-tag-2

  11. 流量路由部分,选择以下选项之一:

    • 仅将请求路由到 VPC 的专用 IP,以便通过共享 VPC 网络将流量仅发送到内部地址。
    • 将所有流量路由到 VPC,以通过共享 VPC 网络发送所有出站流量。
  12. 点击更新

  13. 如需验证您的作业是否在共享 VPC 网络上,请点击该作业,然后点击配置标签页。VPC 卡片中列出了网络和子网。

现在,您可以根据防火墙规则允许执行 Cloud Run 作业,并将作业的请求发送到共享 VPC 网络上的任何资源。

gcloud

如需使用 Google Cloud CLI 将 Cloud Run 作业从连接器迁移到直接 VPC 出站流量,请执行以下操作:

  1. 通过运行 gcloud run jobs update 命令时使用以下标志,断开您的作业与共享 VPC 网络的连接:

    gcloud run jobs update JOB_NAME --region=REGION \
    --clear-network
    

    替换以下内容:

    • JOB_NAME:Cloud Run 作业的名称。
    • REGION:Cloud Run 作业所在的区域。
  2. 使用以下命令为共享 VPC 网络和子网指定完全限定的资源名称,以更新共享子网上的作业:

    gcloud beta run jobs create JOB_NAME \
      --clear-network \
      --image IMAGE_URL \
      --network projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK \
      --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
      --network-tags NETWORK_TAG_NAMES \
      --vpc-egress=EGRESS_SETTING \
      --region REGION \
      --max-instances MAX
      

    替换以下内容:

    • JOB_NAME:Cloud Run 作业的名称。
    • IMAGE_URL:作业的图片网址。
    • HOST_PROJECT_ID:共享 VPC 项目的 ID。
    • VPC_NETWORK:您的共享 VPC 网络的名称。
    • REGION:Cloud Run 作业所在的区域,该区域必须与子网的区域匹配。
    • SUBNET_NAME:您的子网的名称。
    • 可选:将 NETWORK_TAG_NAMES 替换为要与作业关联的网络标记的名称。每个作业执行都可以具有不同的网络标记,例如 network-tag-2
    • EGRESS_SETTING 替换为出站流量设置值
      • all-traffic:通过共享 VPC 网络发送所有出站流量。
      • private-ranges-only:仅发送通过共享 VPC 网络发送到内部地址的流量。

    如需了解详情和可选的参数,请参阅 gcloud 参考文档

  3. 如需验证您的作业是否在共享 VPC 网络上,请运行以下命令:

    gcloud beta run jobs describe JOB_NAME \
    --region=REGION
    

    您需要在其中:

    • JOB_NAME 替换为作业的名称。
    • REGION 替换为您在上一步中指定的作业的区域。

    输出应包含网络的名称、子网和出站流量设置,例如:

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

现在,您可以根据防火墙规则所允许将来自 Cloud Run 作业的请求发送到共享 VPC 网络上的任何资源。