LeaderWorkerSet 持久化存储指南:volumeClaimTemplates 为推理负载挂载专属数据卷

发布时间:2026/8/20 21:48:18
LeaderWorkerSet 持久化存储指南:volumeClaimTemplates 为推理负载挂载专属数据卷 LeaderWorkerSet 持久化存储指南volumeClaimTemplates 为推理负载挂载专属数据卷【免费下载链接】lwsLeaderWorkerSet: An API for deploying a group of pods as a unit of replication项目地址: https://gitcode.com/gh_mirrors/lws2/lwsLeaderWorkerSetLWS是 Kubernetes 生态中面向 AI 推理与分布式训练场景的利器它以一个 Leader 多个 Worker的组为单位部署 Pod。然而很多新手在跑通 vLLM、SGLang 等大模型推理服务后都会遇到同一个难题模型权重和推理数据该放哪里本篇文章将聚焦 LeaderWorkerSet 的持久化存储能力带你一步步学会使用volumeClaimTemplates为推理负载挂载专属数据卷告别 Pod 重启后数据丢失的尴尬。为什么推理负载离不开持久化存储推理负载与普通无状态应用不同它有三大硬需求需求说明不持久化的后果模型权重Llama-3.1-405B 这类大模型权重动辄几百 GB每次重启都要重新下载耗时数小时推理中间产物KV Cache、日志、checkpoint训练中断即前功尽弃多副本一致性同一组 Leader/Worker 需共享模型文件每个副本各存一份磁盘浪费严重在引入持久化存储之前LWS 生成的 Leader 和 Worker StatefulSet 只能依赖emptyDir存放推理模型数据一旦 Pod 重建数据全部清空这对大型模型来说显然不可接受。为此LWS 通过 KEP-622 引入了volumeClaimTemplates支持让每个 Pod 都能挂载独立的持久化数据卷。认识 volumeClaimTemplates一次性为所有 Pod 声明数据卷 volumeClaimTemplates是定义在spec.leaderWorkerTemplate下的可选字段一个模板同时作用于 Leader 和 Worker 两组 StatefulSet无需分别配置。它的类型定义位于 leaderworkerset_types.govolumeClaimTemplatesPVC 模板列表Pod 通过 volumeMounts 引用同名卷即可挂载persistentVolumeClaimRetentionPolicy控制 PVC 在 Pod 删除或缩容时的保留策略控制器在 reconcile 时会把这两个字段注入到 Leader/Worker StatefulSet 的配置中核心逻辑见 leaderworkerset_controller.go整个过程对用户完全透明。最快配置方法5 步为推理负载挂载数据卷 以官方示例 lws-volume-claim-templates.yaml 为基础核心配置可以精简为以下 5 步第 1 步声明存储模板volumeClaimTemplates: - metadata: name: persistent-storage spec: storageClassName: default accessModes: [ReadWriteOnce] resources: requests: storage: 100Gi第 2 步在 Leader 容器中挂载volumeMounts: - mountPath: /mnt/model name: persistent-storage第 3 步在 Worker 容器中挂载配置与 Leader 完全相同第 4 步应用并验证kubectl apply -f lws-volume-claim-templates.yaml kubectl get pvc第 5 步确认数据落盘kubectl exec pod-name -- df -h /mnt/model 官方概念文档 concepts/_index.md 中也有完整的可运行示例建议对照阅读。如何设置 PVC 保留策略防止数据被误删️persistentVolumeClaimRetentionPolicy决定 Pod 被删除或缩容时 PVC 的去留默认值与 StatefulSet 一致whenDeleted: Retain、whenScaled: Retain即数据默认全部保留。你也可以按需调整persistentVolumeClaimRetentionPolicy: whenDeleted: Retain # 删除 Pod 时保留数据卷 whenScaled: Retain # 缩容时保留数据卷对推理场景建议始终使用Retain确保模型权重和日志数据不会因滚动更新或扩缩容而意外丢失。典型场景实战vLLM 多节点推理 持久化存储 在真实项目中你通常会把volumeClaimTemplates与 vLLM 多节点推理结合使用。参考 vllm/GPU/lws.yaml 的思路Leader 启动 Ray 集群并拉起 OpenAI 兼容 API 服务Worker 通过LWS_LEADER_ADDRESS环境变量加入集群。此时为两者挂载共享的持久化数据卷即可让模型权重只下载一次、多副本共享显著缩短启动时间。4 个新手最容易踩的坑 ⚠️忘记写 volumeMounts只声明volumeClaimTemplates而不在容器里挂载PVC 不会生效accessModes 不匹配多 Pod 共享同一数据卷时需使用ReadWriteMany单 Pod 用ReadWriteOnce即可StorageClass 不存在指定storageClassName前先确认集群中已创建对应的 StorageClass模板名称不一致volumeClaimTemplates的name必须与volumeMounts.name完全一致总结 掌握volumeClaimTemplates后你的 LeaderWorkerSet 推理负载就有了数据保险箱模型权重、日志、checkpoint 全部安全落盘Pod 重启、滚动升级、弹性扩缩容都再也不用担心数据丢失。建议你从官方示例 lws-volume-claim-templates.yaml 开始动手实验并结合 KEP-622 设计文档 理解其背后的设计思想很快就能把持久化存储玩得得心应手。【免费下载链接】lwsLeaderWorkerSet: An API for deploying a group of pods as a unit of replication项目地址: https://gitcode.com/gh_mirrors/lws2/lws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻