连接到 VPC 网络

本页面介绍如何使用无服务器 VPC 访问通道将 Cloud Run(全代管式)服务直接连接到 VPC 网络,从而访问 Compute Engine 虚拟机实例、Memorystore 实例以及具有内部 IP 地址的其他任何资源。

如需使用无服务器 VPC 访问通道,您必须先在服务项目中创建无服务器 VPC 访问通道连接器,以处理与 VPC 网络之间的通信。创建连接器后,请设置 Cloud Run(全代管式)服务配置以使用该连接器。

创建无服务器 VPC 访问通道连接器

如需了解有关创建无服务器 VPC 访问通道连接器的详细说明,请参阅创建连接器

配置服务以使用连接器

您可以在创建新服务部署新修订版本时通过 Cloud Console、命令行或 YAML 文件将服务配置为使用连接器:

控制台

  1. 转到 Cloud Run

  2. 如果您是要配置一个新服务来作为部署目标,请点击创建服务。如果您要配置现有服务,请点击该服务,然后点击修改和部署新的修订版本

  3. “高级设置”下,点击连接

    图片

  4. VPC 连接器字段中,选择要使用的连接器或者选择以断开服务与 VPC 网络的连接。

  5. 点击创建部署

命令行

要在部署期间指定连接器,请使用 --vpc-connector 标志:

gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
  • SERVICE 替换为服务的名称。
  • IMAGE_URL 替换为对容器映像的引用,例如 gcr.io/myproject/my-image:latest
  • CONNECTOR_NAME 替换为连接器的名称。

要挂接、更新或移除现有服务的连接器,请根据需要使用 gcloud run services update 命令并添加以下任一标志:

例如,要挂接或更新连接器,请使用以下命令:

gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
  • SERVICE 替换为服务的名称。
  • CONNECTOR_NAME 替换为连接器的名称。

YAML

您可以使用 gcloud run services describe --format export 命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后,您可以使用 gcloud beta run services replace 命令修改下述字段并上传修改后的 YAML。请务必仅修改记录的字段。

  1. 如需查看和下载配置,请运行以下命令:

    gcloud run services describe SERVICE --format export > service.yaml
  2. 在顶级 spec 特性下的 annotations 特性下添加或更新 run.googleapis.com/vpc-access-connector 特性:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
    • SERVICE 替换为 Cloud Run(全代管式)服务的名称。
    • CONNECTOR_NAME 替换为连接器的名称。
  3. 使用以下命令将服务替换为其新配置:

    gcloud beta run services replace service.yaml

连接到共享 VPC 网络

如果您的组织使用共享 VPC,则在共享 VPC 宿主项目中进行一些配置之后,共享 VPC 服务项目中的 Cloud Run(全代管式)服务可以连接到共享 VPC 网络。

  1. 按照在使用共享 VPC 的情况下配置宿主项目中的说明,为共享 VPC 配置宿主项目

  2. 按照创建连接器中的说明为共享 VPC 创建连接器。

  3. 当您在服务项目中部署或更新 Cloud Run(全代管式)服务时,请在控制台界面中使用“连接”标签页中的 VPC 连接器下拉菜单指定连接器,或者如果使用 gcloud 命令行,则使用 --vpc-connector 标志指定连接器。

控制服务的出站流量

默认情况下,只有对内部 IP 地址和内部 DNS 名称的请求会通过无服务器 VPC 访问通道连接器进行路由。但在某些情况下,您可能希望将服务的所有出站请求都路由到您的 VPC 网络,例如,为了使用网络的防火墙规则防止出站流量发往危险或不需要的主机。

如需控制服务的出站请求的路由,您可以将 VPC 出站流量设置为以下选项之一:

  • 仅路由通过 VPC 连接器向专用 IP 发送的请求:默认设置。 只有发送到 RFC 1918RFC 6598 IP 地址范围或内部 DNS 名称的请求才会路由到您的 VPC 网络。其他的所有请求都会直接路由到互联网。
  • 路由通过 VPC 连接器发送的所有流量:来自服务的所有出站请求都会路由到您的 VPC 网络。请求将遵循网络的防火墙、DNS 和路由规则。

创建新服务或部署新修订版本时,您可以通过 Cloud Console、命令行或 YAML 文件指定 VPC 出站流量设置:

控制台

  1. 转到 Cloud Run

  2. 如果您是要配置一个新服务来作为部署目标,请点击创建服务。如果您要配置现有服务,请点击该服务,然后点击修改和部署新的修订版本

  3. “高级设置”下,点击连接

    图片

  4. 选择 VPC 连接器后,选择仅路由通过 VPC 连接器向专用 IP 发送的请求路由通过 VPC 连接器发送的所有流量

  5. 点击创建部署

命令行

要指定出站流量设置,请使用 --vpc-egress 标志。您可以在部署期间指定出站流量设置:

gcloud run deploy SERVICE \
--image IMAGE_URL \
--vpc-connector CONNECTOR_NAME \
--vpc-egress EGRESS_SETTING
  • SERVICE 替换为服务的名称。
  • IMAGE_URL 替换为对容器映像的引用,例如 gcr.io/myproject/my-image:latest
  • CONNECTOR_NAME 替换为连接器的名称。
  • EGRESS_SETTING 替换为出站流量设置值
    • all-traffic:发送通过连接器的所有出站流量。
    • private-ranges-only:仅发送通过 VPC 连接器发送到内部地址的流量。

您还可以更新现有服务并更改出站流量设置:

gcloud run services update SERVICE --vpc-egress EGRESS_SETTING
  • SERVICE 替换为服务的名称。
  • EGRESS_SETTING 替换为上面列出的出站流量设置值

YAML

您可以使用 gcloud run services describe --format export 命令下载并查看现有服务配置,该命令会生成清理后的 YAML 格式的结果。然后,您可以使用 gcloud beta run services replace 命令修改下述字段并上传修改后的 YAML。请务必仅修改记录的字段。

  1. 如需查看和下载配置,请运行以下命令:

    gcloud run services describe SERVICE --format export > service.yaml
  2. 在顶级 spec 特性下的 annotations 特性下添加或更新 run.googleapis.com/vpc-access-egress 特性:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
    • SERVICE 替换为 Cloud Run(全代管式)服务的名称。
    • CONNECTOR_NAME 替换为连接器的名称。 指定出站流量设置时,run.googleapis.com/vpc-access-connector 特性是必需的。
    • EGRESS_SETTING 替换为以下项之一:
      • all-traffic:发送通过连接器的所有出站流量。
      • private-ranges-only:仅发送通过 VPC 连接器发送到内部地址的流量。
  3. 使用以下命令将服务替换为其新配置:

    gcloud beta run services replace service.yaml

后续步骤

查看 VPC 连接设置

如需查看服务的当前 VPC 连接设置,请执行以下操作:

控制台

  1. 转到 Cloud Run

  2. 点击您感兴趣的服务以打开“服务详细信息”页面。

  3. 点击修订版本标签页。

  4. 在右侧的详细信息面板中,“连接”标签页下列出了 VPC 连接设置。

命令行

  1. 使用以下命令:

    gcloud run services describe SERVICE
  2. 在返回的配置中找到 VPC 连接设置。