弹性跨区域高可用性简介

您可以在 Google Kubernetes Engine (GKE) 上为要求严苛的 AI 推理工作负载实现弹性跨区域高可用性,以便在不同区域高效可靠地 访问加速器容量。 Google Cloud 此解决方案使用 GKE 多集群推理网关和 GKE 自动扩缩功能,使您的工作负载能够跨各个区域访问和扩缩加速器容量。这种方法可以提高 AI 应用的资源可用性、可伸缩性和弹性。 本文档介绍了弹性跨区域高可用性的优势、关键组件和整体机制。

在阅读本文档之前,您应该先熟悉以下内容:

本文档面向以下角色:

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

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

弹性跨区域高可用性的优势

弹性跨区域高可用性为管理 AI/机器学习推理工作负载提供了多项关键优势,包括以下几点:

  • 更高的容量和可伸缩性:通过汇集来自不同区域的多个集群的 GPU 或 TPU 资源,克服单区域加速器短缺问题。您还可以使用不同的加速器类型来进一步扩大容量池。借助这种方法,您的 AI 推理工作负载可以突破任何单个区域或加速器类型的容量限制,自动利用舰队中的可用资源,而无需考虑区域。
  • 自动溢出,提高可靠性和可用性: 网关会智能地路由流量,优先考虑首选区域或集群。当某个位置达到容量限制时,流量会自动溢出到其他具有可用资源的位置。 这种方法与多区域部署相结合,可以提高高可用性和容错能力,因为系统可以绕过出现问题的集群或区域。
  • AI 优化型流量分配: 使用基于利用率的负载均衡以及 AI 特定的自定义指标(例如键值对缓存使用情况)。此设置可确保全局优化的路由决策。AI 优化型流量分配会将请求发送到能够处理这些请求的后端,从而最大限度地提高性能,并有助于防止多集群推理舰队过载。

弹性跨区域高可用性的工作原理

借助 GKE 上的弹性跨区域高可用性,您的 AI 推理 工作负载可以自动使用多个 Google Cloud 区域的加速器容量(例如 GPU 或 TPU) 。当您的主要区域所需的资源遇到容量限制时,此解决方案会智能地路由流量并将工作负载扩缩到其他具有可用容量的区域,同时遵循您定义的偏好设置。

下面介绍了弹性跨区域高可用性的关键组件及其协同工作方式:

  • 多集群推理网关:您的推理应用部署在 不同区域的多个 GKE 集群中。这些集群作为 GKE 舰队的一部分进行管理。GKE 多集群推理网关 (MCG) 配置有内部负载平衡器,该均衡器为您的推理请求提供单个专用端点。此网关了解您在舰队中所有集群中的服务部署。
  • 基于利用率的均衡:负载均衡器不会使用基本请求速率,而是根据模型服务器报告的实时自定义利用率 指标分配流量。对于 AI 推理,这通常是 KV 缓存利用率等指标,该指标反映了服务器上的实际负载。
  • 位置和资源偏好设置:您可以配置在集群创建期间允许哪些区域或 可用区运行 AI 推理工作负载,并且可以使用以下内容指定偏好顺序:
    • GCPBackendPolicy:此政策附加到网关,可让您定义首选后端。您可以指定负载均衡器应优先将流量发送到哪些区域(即集群)。此政策通常与您预留容量的位置或延迟时间要求较低的位置保持一致。
    • 自定义 ComputeClass(可选,如果您使用节点池自动创建): 在每个单独的 GKE 集群中,您可以使用自定义 ComputeClass 对象来定义首选节点类型,包括机器 类型(例如 a3-highgpu-8g)、容量类型(例如预留、 按需和抢占式),甚至包括该区域内的首选可用区。
  • 动态伸缩和流量路由:流量会按照以下过程进行伸缩和路由:
    • 传入请求到达多集群 Ingress 网关的内部负载平衡器。
    • 负载均衡器在 GCPBackendPolicy 的指导下,首先将流量发送到首选区域中的后端。
    • 流量会根据自定义利用率指标在区域内和后端之间分配。
    • 每个集群中的 Pod 横向自动扩缩器 (HPA) 会根据相同的利用率指标扩缩模型服务器 Pod 的数量
    • GKE 集群自动伸缩器和节点自动预配在自定义 ComputeClass 的指导下,添加或移除首选类型和可用区的节点,以满足 Pod 的伸缩需求。
  • 弹性跨区域高可用性实际应用:如果首选 区域中的模型服务器已完全利用(即没有额外的可用容量 ),则负载均衡器会自动将流量溢出到其他已配置区域中具有可用容量的集群 。然后,HPA 和集群自动扩缩器会根据需要在这些回退区域中扩缩资源。

后续步骤