Agent Engine PSC 显式代理

1. 简介

Private Service Connect 接口是一种资源,允许提供方 Virtual Private Cloud (VPC) 网络发起与使用方 VPC 网络中的各种目的地的连接。提供方网络与使用方网络可以位于不同的项目和组织中。

如果网络连接接受来自 Private Service Connect 接口的连接,Google Cloud 会为该接口分配由网络连接指定的使用方子网的 IP 地址。使用方和提供方网络已连接,可以使用内部 IP 地址进行通信。

网络连接与 Private Service Connect 接口之间的连接与 Private Service Connect 端点与服务连接之间的连接类似,但存在以下两个主要区别:

  • 网络连接允许提供方网络发起与使用方网络的连接(托管式服务出站流量),而端点则允许使用方网络发起与提供方网络的连接(托管式服务入站流量)。
  • Private Service Connect 接口连接具有传递性。这意味着提供方网络可以与连接到使用方网络的其他网络通信。

Vertex AI PSC 接口可达性注意事项

  • PSC 接口能够将流量路由到 RFC1918 地址块内的 VPC 或本地目标。
  • 以非 rfc-1918 地址块为目标的 PSC 接口需要在使用方的 VPC 中部署一个具有 rfc-1918 地址的显式代理。在 Vertex AI 部署中,必须定义代理以及目标端点的 FQDN。
  • 如果您仅为部署配置了 PSC 接口,则部署会保留其默认的互联网访问权限。出站流量会直接从安全的 Google 管理的租户网络中出站。

Vertex AI PSC 接口 VPC-SC 注意事项

  • 如果您的项目属于 VPC Service Controls 边界的一部分,该边界会阻止 Google 管理的租户的默认互联网访问权限,以防止数据渗漏。
  • 如要在此场景中允许部署访问公共互联网,您必须明确配置一条通过您的 VPC 路由流量的安全出站路径。
  • 实现此目标的推荐方法是,在您的 VPC 边界内设置一个具有 RFC1918 地址的代理服务器,并创建一个 Cloud NAT 网关以允许代理虚拟机访问互联网。

如需了解详情,请参阅以下资源:

部署代理 | Vertex AI 上的生成式 AI | Google Cloud

为 Vertex AI 资源设置 Private Service Connect 接口 | Google Cloud

构建内容

在本教程中,您将构建一个全面的 Agent Engine,该引擎部署了 Private Service Connect (PSC) 接口,以允许通过部署在使用方 VPC 中的代理虚拟机(具有 RFC1918 地址)连接到公共网站 (https://api.frankfurter.app/)。此部署示例适用于已启用 VPC-SC 的项目,或适用于需要通过客户网络(而非租户 VPC)进行互联网出站流量的管理员。

图 1

f42f2db921f6d5af.png

您将在使用方 VPC 中创建一个 psc-network-attachment,利用 DNS 对等互连来解析托管 Agent Engine 的租户项目中的使用方网络 proxy-vm,从而实现以下使用情形:

部署 Agent Engine 并配置代理虚拟机以充当显式代理,从而使其能够访问公共网址 https://api.frankfurter.app

学习内容

  • 如何创建网络连接
  • 提供方如何使用网络连接创建 PSC 接口
  • 如何使用 DNS 对等互连建立从提供方到使用方的通信
  • 如何部署和使用代理虚拟机进行互联网出站流量

所需条件

Google Cloud 项目

IAM 权限

2. 准备工作

更新项目以支持本教程

本教程使用 $变量来帮助在 Cloud Shell 中实现 gcloud 配置。

在 Cloud Shell 中,执行以下操作:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

API 启用

在 Cloud Shell 中,执行以下操作:

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "dns.googleapis.com"
gcloud services enable "notebooks.googleapis.com"
gcloud services enable "storage.googleapis.com"
gcloud services enable "iap.googleapis.com"

验证 API 是否已成功启用

gcloud services list --enabled

3. 使用方设置

创建使用方 VPC

此 VPC 位于客户项目中。系统将在此 VPC 中创建以下资源

  • 消费类子网
  • 网络连接子网
  • Cloud Router(Cloud NAT 必需)
  • Cloud NAT

在 Cloud Shell 中,执行以下操作:

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

创建使用方子网

在 Cloud Shell 中,为代理虚拟机创建子网:

gcloud compute networks subnets create rfc1918-subnet1 --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1

创建 Private Service Connect 网络连接子网

在 Cloud Shell 中,为 PSC 网络连接创建子网:

gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1

Cloud Router 和 NAT 配置

在本教程中,Cloud NAT 用于为没有公共 IP 地址的代理虚拟机提供互联网访问权限。Cloud NAT 可让仅具有专用 IP 地址的虚拟机连接到互联网,从而执行安装软件包等任务。

在 Cloud Shell 中,创建 Cloud Router。

gcloud