如需创建 AI 应用,请预配一个针对 AI 工作负载优化的安全私有 Google Kubernetes Engine (GKE) 集群,然后使用 Helm 图表部署工作负载。本指南介绍了以下模板,您可以自定义这些模板来部署 AI 应用:
AI 预训练推理 GKE 集群:创建高性能模型部署所需的基础设施。此模板用于设置一个安全、专用的 GKE 集群,该集群针对 AI 推理进行了优化。
AI 预训练推理 GKE 工作负载(预览版):部署包含 AI 工作负载配置的 Helm 图表。使用该 Helm 图表通过 vLLM 服务引擎部署预训练的 Gemma 模型。该工作负载配置为可高效请求 GPU 资源,并使用 Pod 横向自动扩缩器 (HPA) 根据 GPU 缓存使用情况进行扩缩。
例如,您可以部署集群和工作负载模板来满足以下业务需求:
| 示例 | 业务需求 | 实现 |
|---|---|---|
| 实时视频分析 | 一家安保公司需要处理来自数百个摄像头的视频流,以实时检测异常情况或特定对象。 | 在支持 GPU 的节点池池上部署视频处理模型。GPU 可以处理并发视频流的高吞吐量、低延迟需求。 |
| 专业文档处理 | 一家保险公司需要每天自动从数千份理赔表单中提取信息,这些表单包含各种不同的布局和手写内容。 | 使用 GKE 集群托管自定义模型,并确保数据在处理过程中绝不会离开安全环境。 |
| 高流量推荐引擎 | 电子商务平台需要在节假日购物高峰期向用户提供个性化的商品推荐。 | 使用 Google Kubernetes Engine Gateway API 将大量用户流量路由到推荐模型。Gateway API 可以处理突如其来的流量高峰,而不会出现延迟时间缩短的情况。 |
架构
下图显示了模板中的组件和连接:
以下内容介绍了此模板中的组件配置:
GKE Standard 集群:安全且专用集群,用于运行 AI 工作负载。
下表介绍了此模板中的集群配置:
配置 用途 node_locations设置为["us-central1-a", "us-central1-b", "us-central1-c"]。通过将集群的节点分布在 us-central1区域的三个可用区中,确保高可用性和弹性。enable_intranode_visibility设置为true。在 VPC 流日志中启用同一节点内 Pod 间流量的可见性。网络监控、问题排查和安全分析需要此可见性。 gateway_api_config已使用{"channel":"CHANNEL_STANDARD"}启用。GKE Inference Gateway API 可帮助您管理 Kubernetes 服务的入站流量。该 API 可帮助您配置精细的路由、高级负载均衡和集中式政策附加。 private_cluster_config.enable_private_endpoint设置为false。private_cluster_config.enable_private_nodes为true。control_plane_endpoints_config.dns_endpoint_config.allow_external_traffic设置为true。确保运行 AI 模型的工作器节点具有私有 IP 地址。这会将您的节点与公共互联网隔离开。GKE 控制平面已配置为可公开访问,以便您在 Virtual Private Cloud (VPC) 网络外部管理集群。 release_channel设置为{"channel":"REGULAR"}。确保您的 GKE 集群接收稳定且可预测的更新,从而在新功能和可靠性之间实现平衡。 GKE 节点池:一组运行应用容器的工作器节点。
下表介绍了此模板中的节点池配置:
配置 用途 autoscaling.min_node_count设置为0。autoscaling.max_node_count设置为3(默认值为100)。当没有 AI 工作负载运行时,节点池可以完全缩容,从而在空闲期间降低成本。伸缩上限有助于控制成本和资源消耗。 添加了 node_config.guest_accelerator参数。gpu_driver_installation_config.gpu_driver_version:设置为"LATEST"。gpu_sharing_config通过TIME_SHARING启用。max_shared_clients_per_gpu:设置为2。指定将 NVIDIA L4 GPU 用于 AI 推理任务。系统会自动安装必要的 GPU 驱动程序。多个较小的工作负载可以共享单个 GPU。 node_config.machine_type变为"g2-standard-8"。该机器类型专门设计用于补充 L4 GPU。vCPU (8) 和内存 (32 GB) 旨在支持 GPU 并运行 AI 推理应用。 node_config.oauth_scopes包含https://www.googleapis.com/auth/cloud-platform。节点的服务账号具有对 Google Cloud 服务的广泛访问权限,可实现 API 交互,以执行日志记录、监控和拉取容器映像等任务。 node_config.shielded_instance_config.enable_secure_boot设置为true。安全启动功能可在引导加载程序和内核执行之前验证其加密签名,从而帮助保护节点免受启动级恶意软件的攻击。
Helm 图表配置
下表列出了已针对在 GKE 上部署和伸缩 AI 推理服务进行自定义的 Helm 图表配置。
| 配置 | 用途 |
|---|---|
replicaCount: 1 |
创建单个初始副本。 |
image.repository: vllm/vllm-openai |
使用 vLLM 映像,这是一个针对大语言模型 (LLM) 推理进行优化的库,通过与 OpenAI 兼容的 API 公开。 |
model.id: google/gemma-7b-it |
将 Gemma 7B 指令调优模型定义为要应用的模型。 |
model.hfSecret: hf-secret |
表示模型需要使用 Kubernetes Secret 进行身份验证,以实现安全的凭据管理。 |
resources.limits和requests(针对nvidia.com/gpu: "1") |
确保每个 pod 都能获得专用 GPU。 |
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 |
确保您的 AI 模型 pod 仅在配备 NVIDIA L4 GPU 的 GKE Standard 节点上进行调度,这些节点非常适合经济实惠的高性能推理。 |
hpa.enabled: true |
启用 Pod 横向自动扩缩器,该扩缩器可让应用根据 targetCPUUtilizationPercentage: 80% 自动扩缩 Pod 数量(介于 minReplicas: 1 和 maxReplicas: 10 之间)。确保在高峰负载期间保持性能,并在低用量期间实现成本效益。 |
tensorParallelSize: 1 |
表示模型未在单个 pod 内的多个 GPU 之间拆分。 |
maxModelLen: 512 |
控制 Gemma 7B 模型可处理的最大序列长度。 |
service.type: ClusterIP |
该服务配置为在集群内进行内部访问。 |
pdb.enabled: true和minAvailable: 1之间 |
系统已启用 Pod 中断预算,以确保高可用性。在主动中断(例如节点维护)期间,您的 AI 模型至少会有一个副本保持可用状态。 |
创建 AI 应用
使用 AI 预训练推理 GKE 集群和工作负载模板部署 AI 应用。
部署 AI 基础设施
配置并部署 AI 预训练推理 GKE 集群模板,以创建运行 AI 工作负载的基础设施。
复制并部署 AI 预训练推理 GKE 集群模板作为应用。
系统会在您选择的部署项目中创建 GKE 集群。
配置组件。详情请参阅以下内容:
点击部署。应用会在几分钟后部署。
在应用详情面板中,点击输出标签页。
确定应用的 cluster_id。您将在部署 Helm 图表时使用此信息。
部署 AI 工作负载
使用 AI 预训练推理 GKE 工作负载模板将 AI 工作负载部署到您创建的集群中。您将部署一个包含 AI 工作负载配置的 Helm 图表。
在 Google 目录页面上,点击 AI 预训练推理 GKE 工作负载模板中的创建新应用。
在名称字段中,为应用输入一个唯一名称。
在 GKE 部署目标区域,执行以下操作:
从项目列表中,选择您在其中部署了 AI 预训练推理 GKE 集群应用的 GKE 集群的项目。
从区域列表中,选择您部署 GKE 集群的区域。
从集群列表中选择已部署的 GKE 集群。
在命名空间列表中,输入您部署 GKE 集群的命名空间。如果您未更改名称,请输入
default。点击创建应用。
系统会创建应用并显示配置文件。
在 Helm 图表面板中,执行以下操作:
几分钟后,Helm 图表配置会部署到您的 GKE 集群。
后续步骤
- 通过基于 Google 模板进行构建,复制并自定义此模板。
- 通过设计应用模板来定义您自己的配置。
- 通过Google Cloud 架构框架确定一般架构最佳实践。