本页面可帮助您为 Google Kubernetes Engine (GKE) 上的 AI/机器学习模型推理工作负载选择合适的负载均衡策略。
本页面适用于以下人员:
- 有兴趣使用 Kubernetes 容器编排功能处理 AI/机器学习工作负载的机器学习 (ML) 工程师、平台管理员和运维人员以及数据和 AI 专家。
- 与 Kubernetes 网络交互的云架构师和网络专家。
如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE 用户角色和任务。
在阅读本页面之前,请确保您熟悉以下内容:
在 Google Kubernetes Engine (GKE) 上部署 AI/机器学习模型推理工作负载时,请选择合适的负载均衡策略,以优化性能、可伸缩性和成本效益。 Google Cloud 提供以下不同的解决方案:
- GKE 推理网关:一种专为高级 AI/机器学习路由构建的解决方案。 如需了解详情,请参阅 GKE 推理网关文档。
- 使用自定义指标的 GKE Gateway:一种使用应用负载平衡器的解决方案,可提供通用控制功能,并且可以与应用负载平衡器结合使用。
组合使用负载均衡解决方案
在某些架构中,您可以同时使用 GKE 推理网关和 GKE 网关以及自定义指标。在这些架构中,应用负载平衡器与具有自定义指标的 GKE Gateway 搭配使用。例如,全球外部应用负载平衡器会根据地理位置和健康检查等因素将流量定向到相应区域。如需了解详情,请参阅应用负载平衡器。 当流量到达特定区域后,GKE 推理网关会执行精细的 AI 感知型负载均衡,将请求路由到最佳模型服务器。如需了解详情,请参阅 GKE 推理网关文档。
如需选择最适合 GKE 上推理应用的 Google Cloud 负载均衡解决方案,请考虑工作负载特征、性能要求和运营模式。
为了将流量导向最合适且负载最低的模型服务器副本,GKE 推理网关的端点选择器扩展程序会监控关键的 AI 特定指标。这些指标包括模型服务器 KV 缓存利用率、待处理请求队列长度、总体 GPU 或 TPU 负载、LoRA 适配器可用性以及各个请求的计算成本。除了复杂的路由之外,GKE 推理网关还提供请求优先级划分和针对模型服务器的优化自动扩缩。
GKE Gateway 与自定义指标概览
应用负载平衡器(例如全球外部应用负载平衡器和区域级外部应用负载平衡器)是一种通用负载平衡器,可根据后端服务报告的自定义指标来分配流量。此功能可根据特定于应用的性能指标对负载分配进行精细控制。
GKE Gateway 充当用于配置和管理应用负载平衡器的 Kubernetes 原生接口。从本质上讲,当您在 GKE 集群中定义 Gateway 资源时,GKE Gateway 控制器会自动配置底层应用负载平衡器,从而提供一种简化的方式来直接从 Kubernetes 管理到 GKE 服务的外部 HTTP/HTTPS 流量,同时使用 Google Cloud的负载均衡基础架构。
比较负载均衡解决方案
下表比较了 GKE 推理网关和具有自定义指标的 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 标头机制(此机制称为“ORCA 负载报告”)来依赖于应用报告的指标。此格式允许报告标准指标(例如 CPU 和内存)或特定于应用的受限资源的自定义命名指标。 |
请求处理 | 降低了在 LLM 中常见的非均匀请求费用。支持请求 [严重程度](/kubernetes-engine/docs/concepts/about-gke-inference-gateway#traffic-distribution)。 | 针对相对统一的请求费用进行了优化。不包含内置的请求优先级。 |
LoRA 适配器支持 | 提供基于亲和性的原生路由,将流量路由到配备了 LoRa 的相应后端。 | 不提供原生支持。 |
自动扩缩集成 | 根据 AI 特有的指标(例如“KV 缓存命中次数”)优化模型服务器的扩缩。 | Pod 横向自动扩缩器 (HPA) 可以使用自定义指标,但设置是基于为应用负载平衡器报告的指标进行的。 |
设置和配置 | 使用 GKE Gateway API 对其进行配置。通过专门的 InferencePool 和 InferenceModel 自定义资源定义 (CRD) 扩展标准 API,以启用其 AI 感知功能。 |
使用 GKE Gateway API 的标准资源对其进行配置。应用必须实现基于 HTTP 标头的机制来报告自定义指标。 |
安全 | 在网关上使用 Model Armor 提供 AI 内容过滤功能。利用了基本的 GKE 安全功能,例如 TLS、IAM、基于角色的访问权限控制 (RBAC) 和命名空间。 | 使用标准应用负载平衡器安全堆栈,包括 Model Armor、TLS 终止和 IAM。Model Armor 也可通过将其作为 Service Extension 集成来获得支持。 |
可观测性 | 提供对 AI 特定指标的内置可观测性,包括 GPU 或 TPU 利用率、`KV 缓存命中率`、`请求队列长度`和模型延迟时间。 | 可观测性依赖于应用配置为报告的任何自定义指标。您可以在 Cloud Monitoring 中查看这些指标。这些指标可以包括标准指标或自定义名称的指标。 |
可扩展性 | 基于可扩展的开源基础构建,支持用户管理的端点选择器算法。通过专门的自定义资源定义(InferencePool 、InferenceModel )扩展了 GKE Gateway API,以简化常见的 AI/机器学习应用场景。 |
设计灵活,允许使用 ORCA 标准通过应用报告的任何自定义指标(负载信号)来扩展负载均衡。 |
发布阶段 | 预览 | GA |
何时使用 GKE 推理网关
使用 GKE Inference Gateway 优化 GKE 上复杂的 AI/机器学习推理工作负载,尤其是 LLM。
在需要执行以下操作时,请选择 GKE 推理网关:
- 模型感知路由:根据 LLM 特定的状态(例如 KV 缓存命中或请求队列长度)或特定 LoRA 适配器来导向流量。
- 可感知成本的负载均衡:高效处理处理费用各不相同的推理请求,并按严重程度(严重、标准或可舍弃)对其进行优先级排序。
- 针对 AI 的自动扩缩:根据相关的 AI 指标动态扩缩模型服务器,以实现最佳资源利用率。
- 内置 AI 安全性和可观测性:使用原生 Model Armor 集成进行 AI 安全检查,并获取有关 GPU/TPU 利用率、KV 缓存命中率和请求队列长度的即用型数据分析。
- 简化生成式 AI 部署:受益于量身打造的可扩展解决方案,该解决方案可简化 GKE 上常见的生成式 AI 部署模式,同时通过其 GKE Gateway API 基础提供自定义功能。
何时将 GKE 网关与自定义指标搭配使用
将 GKE Gateway 与自定义指标搭配使用,可实现灵活的通用型负载均衡,以适应应用的独特性能指标,包括某些推理场景。
如果您需要执行以下操作,请选择使用自定义指标的 GKE 网关:
- 处理流量较高且请求费用相对均匀的情况。
- 使用 ORCA 负载报告,根据应用报告的自定义指标分配负载。
- 避免使用 GKE 推理网关提供的 AI/LLM 特定路由智能。
- 优先考虑与满足推理服务需求的现有应用负载平衡器部署保持一致性。
后续步骤
- 如需详细的部署和配置说明,请参阅关于 GKE 推理网关。
- 了解应用负载平衡器。
- 在 GKE AI 实验室中探索利用 GKE 加速 AI/机器学习计划的实验性示例。