kubernetes-sigs/lws
LeaderWorkerSet: An API for deploying a group of pods as a unit of replication
是什么
LeaderWorkerSet (LWS) 和 DisaggregatedSet (DS) 是为更轻松地运行大规模 AI/ML 推理工作负载(尤其是需要在多个 GPU 或其他加速器上跨多个节点进行分片的场景)而设计的新 Kubernetes API。
- LeaderWorkerSet 允许您将一组 Pod 视为一个单一的逻辑副本。每个组包含一个 leader Pod 和一组共享相同生命周期的 worker Pod。该组会获得一个唯一的索引(0–n),并可以一起调度(gang scheduling),确保整个集合落在同一拓扑结构上(例如,同一机架或节点池)。
- DisaggregatedSet 基于 LWS 构建,用于处理更复杂的多阶段推理流水线(例如,在一组机器上执行预填充阶段,在另一组机器上执行解码阶段)。它协调多个 LWS 组,确保在滚动更新期间保持容量比例稳定,并处理所有角色的故障。
这两个 API 正与 llm-d 项目(CNCF 沙盒分布式推理服务堆栈)共同设计,因此与真实世界的推理框架紧密映射。
为什么对 AI/ML 至关重要
在生产环境中运行大型语言模型(LLM)通常意味着:
- 将模型跨多个 GPU 或 TPU 分片。
- 协调多个阶段(预填充、解码、后处理)——这些阶段可能在不同硬件上运行。
- 保持整个流水线的存活——如果任何 Pod 崩溃,推理请求可能失败。
标准 Kubernetes Deployments 将每个 Pod 独立处理,这使得难以保证分片模型的所有部分同时启动、停止和扩展。LWS 提供了一个 超级 Pod,其行为如同一个单一单元,而 DS 允许您以同步方式编排多个这样的超级 Pod。这降低了运维复杂性,并提高了高吞吐、低延迟推理服务的可靠性。
核心功能(LeaderWorkerSet)
| 功能 | 说明 |
|---|---|
| 作为单元的 Pod 组 | 一个副本由一个 leader 和 workers 组成,共享生命周期;它们并行创建,可一起滚动更新。 |
| 唯一的 Pod 身份 | 每个 Pod 获得一个索引(0–n),对模型分片逻辑非常有用。 |
| 群组调度(alpha) | 组内所有 Pod 要么全部调度,要么一个都不调度,确保共置。 |
| 双模板 | 为 leader 和 workers 分别提供 Pod 模板,允许不同的资源规格。 |
| 多个组 | 可创建多个相同的副本;每个组是扩展和更新的单位。 |
| 扩展子资源 | 暴露 /scale 端点,使 Horizontal Pod Autoscaler (HPA) 可以调整组的数量。 |
| 组级别滚动更新 | 更新按组进行,确保滚动过程中整体一致性。 |
| 拓扑感知放置 | 可选择强制组内 Pod 放置在同一节点、区域或其他拓扑结构中。 |
| 全或无重启 | 如果组内任一 Pod 失败,整个组将被重建,简化故障处理。 |
高级功能(DisaggregatedSet)
| 功能 | 说明 |
|---|---|
| 解耦架构 | 支持不同角色(如预填充、解码)在不同硬件集群上运行的流水线。 |
| 协调的 N 维滚动更新 | 同时更新多个角色(2–10 个),同时保持所需的容量比例。 |
| 统一生命周期 | 将多个 LWS 对象视为一个逻辑单元,用于扩展、更新和删除。 |
| 自动服务编排 | 为每个角色自动创建无头服务,使 Pod 可以相互发现而无需额外配置。 |
| 高级故障处理 | 协调所有角色的驱逐和重启,以保持整体流水线健康。 |
谁会使用它
- ML 平台团队:构建需要在多个 GPU 上分片的大规模 LLM 生产推理服务的团队。
- 云提供商:希望与 Kubernetes 更紧密集成的托管推理堆栈的提供商。
- 研究团队:运行多节点模型服务实验,需要可复现、版本化部署的研究组。
快速入门
- 安装 – 按照安装指南操作(需要 Kubernetes 1.34+)。项目提供 CRD 清单和运行在集群内的控制器。
- 定义 LeaderWorkerSet – 编写 YAML 文件,指定 leader Pod 模板、worker Pod 模板和期望的副本数。
- (可选)使用 DisaggregatedSet – 如果您的工作负载具有不同角色,创建一个引用多个 LWS 对象的 DS 对象。
- 扩展与监控 – 使用标准
kubectl scale或 HPA 在/scale子资源上进行扩展;控制器负责群组调度和协调滚动更新。
社区与支持
- Slack:Kubernetes Slack 工作区中的
#sig-apps频道。 - 邮件列表:
kubernetes-sig-appsGoogle 群组。 - 文档与演讲:https://lws.sigs.k8s.io/docs/(包含示例、采用案例和演示视频)。
- 贡献:遵循标准的 Kubernetes SIG 流程——提交 PR,运行 CI(单元测试、集成测试和跨 K8s 1.34–1.37 的 E2E 测试),并遵守 Kubernetes 代码规范。
TL;DR
LWS + DS 为 Kubernetes 提供了一种原生方式,用于部署和管理多 Pod、多节点推理工作负载(如分片 LLM 服务)。它们提供组级别生命周期、群组调度、扩展和协调滚动更新,使大规模 AI 推理在 Kubernetes 上更可靠、更易操作。
相关
- 项目
- 项目
- Dispatch
- 项目
- 项目