设置 VPC 网络对等互连

您可以将 Vertex AI 配置为与 Virtual Private Cloud (VPC) 建立对等互连,以直接与 Vertex AI 中的某些资源连接,这些资源包括:

本指南介绍如何设置 VPC 网络对等互连,以使您的网络与 Vertex AI 资源对等互连。建议已熟悉 Google Cloud 网络概念的网络管理员阅读本指南。

概览

本指南包含以下任务:

  • 为 VPC 配置专用服务访问通道。这将在您的 VPC 与 Google 的共享 VPC 网络之间建立对等互连连接。
  • 考虑需要为 Vertex AI 预留的 IP 范围。
  • 如果适用,请导出自定义路由,以供 Vertex AI 导入。

准备工作

  • 选择要与 Vertex AI 资源建立对等互连的 VPC。
  • 选择或创建用于 Vertex AI 的 Google Cloud 项目。
  • 确保您的 Google Cloud 项目已启用结算功能

  • Enable the Compute Engine API, Vertex AI API, and Service Networking APIs.

    Enable the APIs

  • (可选)您可以使用共享 VPC。如果您使用共享 VPC,则通常需要在单独的 Google Cloud 项目中使用 Vertex AI,而不是您的 VPC 宿主项目。在这两个项目中启用 Compute Engine API 和 Service Networking API。了解如何配置共享 VPC
  • 如果您想运行本指南中的 gcloud 示例,请安装 gcloud CLI

所需的角色

如果您不是 Project Owner 或 Project Editor,请确保您拥有 Compute Network Admin 角色 (roles/compute.networkAdmin),该角色包括管理网络资源所需的角色。

使用本地网络对等互连

对于与本地网络之间的 VPC 网络对等互连,还需要执行其他一些步骤:

  1. 将您的本地网络连接到您的 VPC。为此,您可以使用 VPN 隧道
  2. 设置从 VPC 到本地网络的自定义路由
  3. 导出自定义路由,以供 Vertex AI 导入。

为您的 VPC 设置专用服务访问通道

设置专用服务访问通道时,您可以在自己的网络与 Google 或第三方服务(服务提供方)拥有的网络之间建立专用连接。 本例中的服务提供方是 Vertex AI。要设置专用服务访问通道,请为服务提供方预留一个 IP 地址范围,然后使用 Vertex AI 创建对等互连连接。

如果您已拥有配置了专用服务访问通道的 VPC,请转到导出自定义路由

  1. 为您的项目 ID、预留地址范围的名称和网络的名称设置环境变量。如果您使用共享 VPC,请使用 VPC 宿主项目的项目 ID。否则,请使用用于 Vertex AI 的 Google Cloud 项目的 ID。
  2. 启用所需的 API。如果您使用共享 VPC,请参阅将共享 VPC 与 Vertex AI 搭配使用
  3. 使用 gcloud compute addresses create 设置预留范围。
  4. 使用 gcloud services vpc-peerings connect 在您的 VPC 宿主项目与 Google 的 Service Networking 之间建立对等互连连接。

    对于专用预测端点,我们建议至少为子网预留一个 /21 地址块,以用于模型托管。预留较小的地址块可能会因 IP 地址不足而导致部署错误。您可以选择使用非 RFC 1918 地址进行部署

    PROJECT_ID=YOUR_PROJECT_ID
    gcloud config set project $PROJECT_ID
    
    # This is for display only; you can name the range anything.
    PEERING_RANGE_NAME=google-reserved-range
    
    NETWORK=YOUR_NETWORK_NAME
    
    # NOTE: `prefix-length=16` means a CIDR block with mask /16 will be
    # reserved for use by Google services, such as Vertex AI.
    gcloud compute addresses create $PEERING_RANGE_NAME \
      --global \
      --prefix-length=16 \
      --description="peering range for Google service" \
      --network=$NETWORK \
      --purpose=VPC_PEERING
    
    # Create the VPC connection.
    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=$NETWORK \
      --ranges=$PEERING_RANGE_NAME \
      --project=$PROJECT_ID
    

详细了解专用服务访问通道

将共享 VPC 与 Vertex AI 搭配使用

如果您在项目中使用共享 VPC,请参阅如何预配共享 VPC 并确保完成以下步骤:

  1. 在宿主项目和服务项目中启用 Compute Engine API 和 Service Networking API。必须为服务项目启用 Vertex AI API。

  2. 在宿主项目中的 VPC 与 Google 服务之间创建 VPC 网络对等互连连接。

  3. 在创建 Vertex AI 期间,您必须指定希望 Vertex AI 有权访问共享 VPC 的网络的名称。

  4. 验证使用的服务或用户账号是否具有 Compute Network User 角色 (roles/compute.networkUser) 角色。

为 Vertex AI 预留 IP 地址范围

当您为服务提供方预留 IP 范围时,该范围可供供 Vertex AI 和其他服务使用。如果您与使用同一 IP 地址范围的多个服务提供方连接,请分配更大的范围以适应这些服务提供方,以免 IP 地址用尽。

了解预留来将专用 IP 地址与不同类型的自定义训练作业搭配使用的估计 IP 地址范围

如果使用以下参数启动作业,则作业将在 Google 管理的网络中启动,该网络与您的 VPC 和连接到它的其他网络对等互连:

--network = "projects/${host_project}/global/networks/${network}"

不需要访问您的网络的任何作业都可以在不进行此声明的情况下启动,从而保留您的 IP 地址分配。

导出自定义路由

如果您使用自定义路由,则需要将其导出,以便 Vertex AI 导入这些路由。如果您不使用自定义路由,请跳过此部分。

要导出自定义路由,请在 VPC 中更新对等互连连接。导出自定义路由会将 VPC 网络中符合条件的静态和动态路由(例如到您的本地网络的路由)发送到服务提供方的网络平台(在这里是 Vertex AI)。这将建立必要的连接,并允许训练作业将流量发回至本地网络。

确保您的本地网络具有返回到分配给 Vertex AI 的 IP 地址范围的路由,以便响应可以正确路由回 Vertex AI。例如,使用包含 Vertex AI IP 地址范围的 Cloud Router 自定义路由通告。

详细了解与本地网络的专用连接

控制台

  1. 转到 Google Cloud 控制台中的“VPC 网络对等互连”页面。
    转到“VPC 网络对等互连”页面
  2. 选择要更新的对等互连连接。
  3. 点击修改
  4. 选择导出自定义路由

gcloud

  1. 找到要更新的对等互连连接的名称。如果您有多个对等互连连接,请忽略 --format 标志。

    gcloud services vpc-peerings list \
      --network=$NETWORK \
      --service=servicenetworking.googleapis.com \
      --project=$PROJECT_ID \
      --format "value(peering)"
    
  2. 更新对等互连连接以导出自定义路由。

    gcloud compute networks peerings update PEERING-NAME \
        --network=$NETWORK \
        --export-custom-routes \
        --project=$PROJECT_ID
    

检查您的对等互连连接的状态

要查看对等互连连接是否处于活跃状态,您可以使用如下代码列出它们

gcloud compute networks peerings list --network $NETWORK

您应该看到,刚刚创建的对等互连的状态为 ACTIVE。 详细了解处于活跃状态的对等互连连接

问题排查

本部分列出了使用 Vertex AI 配置 VPC 网络对等互连时的一些常见问题。

  • 将 Vertex AI 配置为使用共享 VPC 网络时,通过以下方式指定网络 URI。

    "projects/YOUR_SHARED_VPC_HOST_PROJECT/global/networks/YOUR_SHARED_VPC_NETWORK"

  • 如果您指定 Vertex AI 要使用的共享 VPC 网络,请确保服务项目中 Vertex AI 的任何用户或服务账号操作者都具有宿主项目的 compute.networkUser 角色。

  • 确保已为您的网络所连接的所有服务提供方(包括 Vertex AI)分配足够的 IP 地址范围。

  • 如果您收到错误消息 IP_SPACE_EXHAUSTEDRANGES_EXHAUSTEDPEERING_RANGE_EXHAUSTED,则必须增加网络中 servicenetworking 预留的可用 IP 地址数量。您可以向现有 VPC 网络对等互连配置添加新范围,也可以删除一些 Vertex AI 资源以释放已分配的 IP 地址。

  • 连接超时:导出自定义路由后,来自 Vertex AI 的连接将通过您的网络路由,以访问其他网络中的端点。但是,将响应发送回 Vertex AI 时,这些端点可能不会通过您的网络路由。请确保您还在这些网络中为 Vertex AI 分配的 IP 范围的返回路径添加静态或动态路由。

  • 连接超时/主机无法访问错误:由于不支持传递性对等互连,因此即使启用了“导出自定义路由”,来自 Vertex AI 的连接也将无法访问直接对等互连到您的网络的其他网络中的端点。请与您的网络管理员协作,确保没有将您的网络从一个直接对等互连的网络直接路由到另一个对等互连的网络的尝试。如果需要,您可以将其中一个对等互连跃点替换为支持静态或动态路由的解决方案。

  • 主机无法访问 DNS 错误:如果 Vertex AI 作业需要解析 VPC 中的主机名,请确保您已完成与服务提供方共享专用 DNS 区域的配置。

如需了解更多问题排查信息,请参阅 VPC 网络对等互连问题排查指南

后续步骤