第 3 章 Leader Worker Set Operator
3.1. Leader Worker Set Operator 概述 复制链接链接已复制到粘贴板!
将大型语言模型 (LLM) 用于 AI/ML 推理通常需要大量的计算资源,因此工作负载通常需要在多个节点之间进行分片。这可使部署变得复杂,对扩展、故障恢复以及有效的 pod 放置方面造成挑战。
Leader Worker Set Operator 通过将一组 pod 视为一个单个的、相互协调的单元,从而简化了对这些多节点的部署。它管理组中每个 pod 的生命周期,将整个组一起进行扩展,并在组级别执行更新和故障恢复以确保一致性。
3.1.1. 关于 Leader Worker Set Operator 复制链接链接已复制到粘贴板!
Leader Worker Set Operator 基于 LeaderWorkerSet 开源项目。LeaderWorkerSet
是一个自定义 Kubernetes API,它可用于将一组 pod 作为一个单元来部署。这对人工智能 (AI) 和机器学习 (ML) 的工作负载很有用,其中大型语言模型 (LLM) 在多个节点上进行分片。
通过 LeaderWorkerSet
API,pod 被分组为一个单元,包括一个 leader 和多个 worker,它们作为一个单个实体一起管理。组中的每个 pod 都有一个唯一的 pod 身份。组中的 Pod 会并行创建,并共享相同的生命周期阶段。推出部署、滚动更新和 pod 故障重启作为组来执行。
在 LeaderWorkerSet
配置中,您可以定义组的大小以及组副本数。如果需要,您可以为 leader 和 worker pod 定义单独的模板,以进行特定于角色的自定义。您还可以配置拓扑感知放置,以便同一组中的 pod 位于相同的拓扑中。
在安装 Leader Worker Set Operator 之前,您需要安装 cert-manager Operator for Red Hat OpenShift,因为配置服务和管理指标集合需要它。
默认情况下,对 Leader Worker Set Operator 的监控是通过 OpenShift Container Platform 的 Prometheus 实现的。
3.1.1.1. LeaderWorkerSet 架构 复制链接链接已复制到粘贴板!
下图显示了 LeaderWorkerSet
API 如何将 pod 组组织到一个单元中,其中一个 pod 作为 leader,其余 pod 作为 worker,以协调分布式工作负载:
图 3.1. Leader worker set 架构
LeaderWorkerSet
API 使用一个 leader 有状态集来管理 pod 组的部署和生命周期。对于每个定义的副本,都会创建一个 leader-worker 组。
每个 leader-worker 组包含一个 leader pod 和一个 worker 有状态集。worker 有状态集由 leader pod 所拥有,并管理与该 leader pod 关联的 worker pod 集合。指定的大小定义了每个 leader-worker 组中的 pod 总数,leader pod 包括在其中。