为 GKE 上的 AI/机器学习模型推理选择负载均衡策略

本页面可帮助您为 Google Kubernetes Engine (GKE) 上的 AI/机器学习模型推理工作负载选择合适的负载均衡策略。

本页面适用于以下人员:

  • 有兴趣使用 Kubernetes 容器编排功能处理 AI/机器学习工作负载的机器学习 (ML) 工程师、平台管理员和运维人员以及数据和 AI 专家。
  • 与 Kubernetes 网络交互的云架构师和网络专家。

如需详细了解我们在Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE 用户角色和任务

在阅读本页面之前,请确保您熟悉以下内容:

在 GKE 上部署 AI/机器学习模型推理工作负载时,请选择合适的负载均衡策略,以优化性能、可伸缩性和成本效益:

  • 选择 GKE 推理网关,以便针对 AI/机器学习工作负载提供优化路由和负载均衡。
  • 选择“使用自定义指标的 GKE Gateway”,该选项使用 应用负载均衡器。此选项提供通用控制功能,可让您根据应用或基础设施要求的特定指标配置流量分配。

GKE 推理网关概览

GKE 推理网关可优化和管理要求严苛的生成式 AI (GenAI) 和复杂的大型语言模型 (LLM) 推理工作负载。它扩展了 GKE Gateway API,具有多项关键优势:

  • 智能的 AI 感知型路由:GKE 推理网关会监控关键的 AI 特定指标,包括:

    • 模型服务器 KV 缓存利用率
    • 待处理请求队列长度
    • GPU/TPU 总体利用率
    • LoRA 适配器可用性
    • 各个请求的计算成本。根据这些指标,网关会将流量智能地分配给最合适且负载最轻的模型服务器副本。
  • 请求优先级:网关提供用于确定请求优先级的机制。

  • 优化型自动扩缩:网关为模型服务器提供优化型自动扩缩机制。

使用自定义指标的 GKE Gateway 概览

Google Cloud 提供支持全球外部和区域级外部等范围的应用负载均衡器资源。这些通用负载均衡器会根据后端服务报告的自定义指标来分配流量。这种方法可对负载分配进行精细控制,让您能够根据特定于应用的性能指标来分配负载。

比较 GKE 推理网关和使用自定义指标的 GKE Gateway

请使用下表比较 GKE 推理网关和使用自定义指标的 GKE Gateway 的功能,并为 GKE 上的 AI/机器学习推理工作负载选择合适的负载均衡解决方案。

功能 GKE 推理网关 使用自定义指标的 GKE Gateway(通过应用负载均衡器)
主要应用场景 在 Kubernetes 上优化生成式 AI 和机器学习推理工作负载,包括提供大语言模型 (LLM) 服务。它可确保公平访问模型资源,并优化对延迟敏感的基于 GPU 或 TPU 的 LLM 工作负载。 提供通用 HTTP(S) 负载均衡,根据自定义的应用报告指标分配流量。此类负载均衡非常适合报告自定义利用率数据的延迟敏感型服务,例如实时游戏服务器或高频交易平台。
基本路由 支持基于主机和路径的标准 HTTP(S) 路由,扩展了 GKE Gateway API。 支持基于主机和路径的标准 HTTP(S) 路由。您可以使用 GKE Gateway API 的标准资源来配置此功能。
高级路由逻辑 提供高级功能,例如模型感知路由、流量拆分、镜像,以及将优先级和严重程度级别应用于请求。 根据应用通过 Open Request Cost Aggregation (ORCA) 标准报告的自定义指标来均衡流量。这样可实现 WEIGHTED_ROUND_ROBIN 等政策,以用于确定某个位置内端点的权重。
支持的指标 利用一套原生 AI 专用指标,例如 GPU 或 TPU 利用率、KV 缓存命中率和请求队列长度。它还可以配置为使用标准化 HTTP 标头机制来使用应用报告的指标。 依赖于使用标准化 HTTP 标头机制(即 Open Request Cost Aggregation (ORCA) 负载报告)的应用报告的指标。此机制支持 CPU 和内存等标准指标,以及应用专用受限资源的自定义命名指标。
请求处理 旨在处理请求费用不均匀的工作负载,这在 LLM 中很常见,因为提示的复杂程度各不相同。 它支持请求严重程度级别,从而可以对不同类型的推理请求进行优先级排序。 最适合各个请求的处理费用相对统一的工作负载。此解决方案不包含原生请求优先级设置功能。
LoRA 适配器支持 提供基于亲和性的原生路由,可将请求路由到配备特定 LoRa 适配器的后端,确保请求定向到适当的资源。 不提供对 LoRa 适配器的原生支持,也不提供基于 LoRa 配置的基于亲和性的路由。
自动扩缩集成 利用 AI 特有的指标(例如 KV 缓存利用率)优化模型服务器的自动扩缩,以便做出更明智的扩缩决策。 使用自定义指标与 Pod 横向自动扩缩器 (HPA) 集成。 这些指标会报告给应用负载均衡器,并根据报告的负载信号以通用方式用于扩缩。
设置和配置 使用 GKE Gateway API 对其进行配置。通过专门的 InferencePoolInferenceModel 自定义资源定义 (CRD) 扩展标准 API,以启用其 AI 感知功能。 您可以使用 GKE Gateway API 的标准资源来配置此解决方案。应用必须实现基于 HTTP 标头的机制(例如 Open Request Cost Aggregation [ORCA]),以报告用于负载均衡的自定义指标。
安全 此解决方案包括在网关级别使用 Model Armor 进行 AI 内容过滤。它还利用了基本的 GKE 安全功能,例如 TLS、Identity and Access Management (IAM)、基于角色的访问权限控制 (RBAC) 和命名空间。 此解决方案使用标准应用负载均衡器安全堆栈,其中包括 Google Cloud Armor、TLS 终止和 IAM。 如需启用 AI 内容过滤功能,您可以将 Google Cloud Armor 集成为服务扩展程序。
可观测性 提供对 AI 特定指标的内置可观测性,包括 GPU 或 TPU 利用率、KV 缓存命中率、请求队列长度和模型延迟时间。 可观测性依赖于应用配置为报告的任何自定义指标。您可以在 Cloud Monitoring 中查看这些指标。这些指标可以包括标准指标或自定义名称的指标。
可扩展性 基于可扩展的开源基础构建,允许用户管理端点选择器算法。它通过专门的 [自定义资源定义 (CRD)](/kubernetes-engine/docs/how-to/deploy-gke-inference-gateway)(例如 InferencePoolInferenceModel)扩展了 GKE Gateway API,以简化常见的 AI 使用场景。 设计灵活,可让您使用应用通过 ORCA 标准报告的任何 [自定义指标(负载信号)](/load-balancing/docs/https/applb-custom-metrics)来扩展负载均衡。
发布阶段 GA GA

何时使用 GKE 推理网关

选择 GKE 推理网关,以优化 GKE 上复杂的 AI 和机器学习推理工作负载,尤其是大语言模型 (LLM)。我们建议在以下情况下使用此解决方案:

  • 提供 LLM 服务:使用 vLLM 等模型服务器时,您需要根据 LLM 特定的状态(例如 KV 缓存利用率或请求队列长度)做出路由决策。
  • 部署带有 LoRA 适配器的模型:您需要智能的基于亲和性的路由,将请求路由到配备了正确且可用的 LoRA 适配器的后端。
  • 处理处理费用变化很大的推理请求:例如,动态提示大小或复杂性需要使用可感知费用的负载均衡器。
  • 实现请求优先级划分:您需要对不同类别的推理流量进行优先级划分,例如关键请求、标准请求或可舍弃的请求。
  • 优化自动扩缩:您希望自动扩缩机制与生成式 AI (GenAI) 模型服务器的特定性能指标(例如 KV 缓存利用率)紧密结合,以便做出更明智的扩缩决策。
  • 利用 Model Armor 集成:您需要在网关级层使用 Model Armor 进行 AI 安全检查。
  • 获得开箱即用的可观测性:您需要针对关键 AI 特定指标(包括 GPU 或 TPU 利用率、KV 缓存命中率和请求队列长度)提供内置的可观测性。
  • 简化生成式 AI 部署:您希望使用专门构建的解决方案来简化 GKE 上常见的生成式 AI 部署模式,同时通过其可扩展的 GKE Gateway API 基础保留未来自定义选项。

何时使用具有自定义指标的 GKE Gateway

如需根据应用的独特性能指标实现灵活的通用负载均衡,请使用具有自定义指标的 GKE Gateway。此方法可根据独特的应用定义性能指标(包括特定推理场景)实现负载分配。我们建议在以下情况下使用此功能:

  • 您的工作负载具有大量流量,且每个请求的处理成本相对均匀。
  • 通过应用报告的一项或两项特定自定义指标,可以有效管理负载分配,这些指标通常通过 HTTP 响应标头使用 Open Request Cost Aggregation (ORCA) 负载报告标准进行报告。
  • 您的负载均衡要求不依赖于 GenAI 或 LLM 特有的功能。
  • 您的运营模型不需要 GKE 推理网关提供的专门的 AI 特定智能,从而避免了不必要的架构复杂性。
  • 优先考虑与满足推理服务负载均衡需求的现有应用负载均衡器部署保持一致性。

后续步骤