博客 | NGINX

在 Kubernetes 上扩展 AI/ML 工作负载的快速指南

NGINX-F5-horiz-black-type-RGB 的一部分
Ilya Krutov 缩略图
伊利亚·克鲁托夫
2024 年 1 月 11 日发布

在 Kubernetes 上运行人工智能(AI)和机器学习(ML)模型训练和推理时,动态扩大和缩小规模成为关键要素。 除了需要高带宽存储和网络来提取数据之外,AI模型训练还需要大量(且昂贵的)计算,主要来自GPU或其他专用处理器。 即使利用预先训练的模型,生产中的模型服务和微调等任务仍然比大多数企业工作负载更具计算密集性。

云原生 Kubernetes 专为快速扩展和收缩而设计。 它还旨在为混合多云环境中的动态工作负载提供更高的灵活性和更具成本效益的资源使用率。

在这篇博客中,我们介绍了在 Kubernetes 上扩展 AI/ML 工作负载的三种最常见方法,以便您可以实现最佳性能、成本节省以及在不同环境中进行动态扩展的适应性。

Kubernetes 上 AI/ML 工作负载的三种扩展模式

Kubernetes 扩展工作负载的三种常见方式是使用水平 Pod 自动扩展器 (HPA)、垂直 Pod 自动扩展器 (VPA) 和集群自动扩展器。

以下是这三种方法的细分:

  • HPA——相当于向应用添加实例或 pod 副本,从而赋予其更大的规模、容量和吞吐量。
  • VPA——相当于调整 pod 的大小,使其具有更高的容量、更大的计算能力和内存。
  • 集群自动扩缩器——根据 Pod 的当前资源需求自动增加或减少 Kubernetes 集群中的节点数量。

每种模式对于模型训练和推理都有其优势,您可以在下面的用例中进行探索。

HPA 用例

在许多情况下,分布式 AI 模型训练和推理工作负载可以水平扩展(即添加更多 pod 以加快训练过程或请求处理)。 这使得工作负载受益于 HPA,它可以根据 CPU 和内存使用情况等指标,甚至与工作负载相关的自定义和外部指标来扩展 pod 的数量。 在工作负载随时间变化的场景下,HPA 可以动态调整 pod 数量,以确保最佳的资源利用率。

在 Kubernetes 中水平扩展 AI 工作负载的另一个方面是负载均衡。 为了确保最佳性能和及时处理请求,传入的请求需要分布在多个实例或 pod 之间。 这就是为什么可以与 HPA 结合使用的理想工具之一是Ingress 控制器

带有 Ingress Controller 的 Kubernetes 图表

VPA 用例

AI模型训练任务通常是资源密集型的,需要大量的CPU、GPU和内存资源。 VPA 可以动态调整这些资源分配。 这有助于确保每个 pod 都有足够的资源来有效地处理训练工作量,并且所有分配的 pod 都有足够的计算能力来执行计算。 此外,在大型模型的训练过程中,内存需求可能会发生很大波动。 VPA 可以根据需要增加内存分配来帮助防止内存不足错误。

虽然从技术上讲可以同时使用 HPA 和 VPA,但需要仔细配置以避免冲突,因为它们可能会尝试以不同的方式(即水平与垂直)扩展相同的工作负载。 明确定义每个自动缩放器的边界至关重要,确保它们相互补充而不是相互冲突。 一种新兴的方法是将两者在不同范围内使用——例如,HPA 用于根据工作负载跨多个 pod 进行扩展,而 VPA 用于在 HPA 设定的限制内微调每个 pod 的资源分配。

集群自动扩缩器用例

Cluster Autoscaler 可以帮助动态调整集群范围内可用的计算、存储和网络基础设施资源的总体池,以满足 AI/ML 工作负载的需求。 通过根据当前需求调整集群中的节点数量,组织可以在宏观层面实现负载平衡。 这对于确保最佳性能是必要的,因为 AI/ML 工作负载可能会不可预测地需要大量计算资源。

HPA、VPA 和 Cluster Autoscaler 各有作用

总而言之,Kubernetes 自动扩展的工作方式有三种,并且对 AI 工作负载有益:

  • HPA 可扩展需要处理不同请求率的 AI 模型服务端点。
  • VPA 优化了 AI/ML 工作负载的资源分配,并确保每个 pod 都拥有足够的资源进行高效处理,而不会出现过度配置。
  • Cluster Autoscaler 会将节点添加到集群以确保它能够容纳资源密集型的 AI 作业,或者在计算需求较低时删除节点。

HPA、VPA 和 Cluster Autoscaler 在管理 Kubernetes 中的 AI/ML 工作负载方面相互补充。 Cluster Autoscaler 确保有足够的节点来满足工作负载需求,HPA 有效地在多个 pod 之间分配工作负载,VPA 优化这些 pod 的资源分配。 它们共同为 Kubernetes 环境中的 AI/ML应用提供了全面的扩展和资源管理解决方案。

访问我们的“为您的 AI 之旅提供动力和保护”页面,详细了解 F5 和 NGINX 如何帮助交付、保护和优化您的 AI/ML 工作负载。


“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”