LeaderWorkerSet 生态全景:vLLM、SGLang、TensorRT-LLM 与 NVIDIA NIM 集成实战
LeaderWorkerSet 生态全景:vLLM、SGLang、TensorRT-LLM 与 NVIDIA NIM 集成实战
【免费下载链接】lwsLeaderWorkerSet: An API for deploying a group of pods as a unit of replication项目地址: https://gitcode.com/gh_mirrors/lws2/lws
LeaderWorkerSet(LWS)是一个开源的 Kubernetes 原生 API,用于把「一组 Pod」作为一个复制单元进行部署和管理。它专为大规模 LLM 推理而设计——在 vLLM、SGLang、TensorRT-LLM 甚至 NVIDIA NIM 等主流推理框架的多节点部署中,LeaderWorkerSet 正在成为事实上的编排标准。本文用最简单的方式,带你一次看懂 LWS 生态全景与四大主流框架的集成实战,让「分布式 LLM 推理服务」从复杂变得简单。
为什么大模型推理需要 LeaderWorkerSet?🤔
单个 GPU 装不下 Llama-3.1-405B、DeepSeek-R1 这类超大模型,必须把模型切分到多台机器上并行推理(张量并行 + 流水线并行)。传统方式需要手工管理每台机器上的 Pod、协调它们的启动顺序,非常痛苦。
LeaderWorkerSet 的核心模型是Leader + Worker:
- Leader Pod:每个组有一个 Leader,负责对外提供服务(HTTP 接口);
- Worker Pod:跟随 Leader 的多个 Worker,与 Leader 协作完成分布式推理;
- 组(Group):Leader + 所有 Worker 组成一个复制单元,整体扩容、整体重启、整体滚动更新。
更贴心的是,LWS 会自动向每个 Pod 注入三个环境变量,推理框架无需感知 Kubernetes 细节即可组网:
| 环境变量 | 作用 |
|---|---|
LWS_LEADER_ADDRESS | Leader 的地址(通过 headless service 暴露) |
LWS_GROUP_SIZE | 当前组内的 Pod 总数 |
LWS_WORKER_INDEX | 当前 Pod 在组内的索引(0 代表 Leader) |
这套设计正是集成 vLLM、SGLang、TensorRT-LLM 的关键钥匙。相关定义可参考源码 api/leaderworkerset/v1/leaderworkerset_types.go 与环境变量文档 site/content/en/docs/reference/labels-annotations-and-environment-variables.md。
实战一:vLLM 分布式推理集成 ✅
vLLM 是目前最流行的开源推理框架,它通过 Ray 管理分布式运行时。LWS 与 vLLM 的配合方式是:Leader 作为 Ray head 节点并运行 API Server,Worker 作为 Ray worker 节点,由 LWS 负责把整组 Pod 拉起。
官方示例(docs/examples/vllm/GPU/lws.yaml)中,每个副本包含 2 个 Pod(pipeline_parallel_size=2),每个 Pod 占 8 张 GPU(tensor_parallel_size=8),部署 2 个副本,即可跑起 Llama-3.1-405B-Instruct 这样的巨型模型:
command: - "python3 -m vllm.entrypoints.openai.api_server --port 8080 --model meta-llama/Llama-3.1-405B-Instruct --tensor-parallel-size 8 --pipeline_parallel_size 2"部署后,通过kubectl port-forward svc/vllm-leader 8080:8080即可访问 OpenAI 兼容接口。此外,仓库还提供了TPU 版本(docs/examples/vllm/TPU/lws.yaml),支持 GKE 上的 v5e 切片,一条 YAML 同时覆盖 GPU 与 TPU 两种场景。
实战二:SGLang 多节点部署 ✅
SGLang 以其极致的推理速度著称,是 DeepSeek-R1 等模型的高性能选择。LWS 的集成方式同样优雅——SGLang 原生支持张量并行,配合 LWS 注入的环境变量即可零脚本组网。
以 docs/examples/sglang/lws.yaml 为例,只需在启动参数中引用 LWS 注入的变量:
--dist-init-addr $(LWS_LEADER_ADDRESS):20000 --nnodes $(LWS_GROUP_SIZE) --node-rank $(LWS_WORKER_INDEX)Leader 运行 HTTP Server(端口 40000),所有 Pod 通过--tp 2跨节点张量并行。实测中,这套方案可轻松扩展到 Llama-3.1-405B 甚至 DeepSeek-R1 671B 级别。唯一需要注意的是:张量并行对节点间带宽要求较高,生产环境建议使用高速互联网络。⚠️
实战三:TensorRT-LLM 集成 ✅
TensorRT-LLM 是 NVIDIA 官方的高性能推理引擎,通过MPI管理分布式运行时。LWS 集成 TensorRT-LLM 的步骤稍多但同样清晰:
- 构建镜像:使用仓库提供的 Dockerfile 构建 Triton TensorRT-LLM 镜像;
- 创建 RBAC:MPI 脚本需要访问 kubectl 判断 Worker 就绪状态,先应用 docs/examples/tensorrt-llm/rbac.yaml;
- 部署 LWS:应用 docs/examples/tensorrt-llm/lws.yaml,每个副本 2 个 Pod(流水线并行=2),每 Pod 8 张 GPU(张量并行=8),Leader 通过 ClusterIP Service 暴露 8000 端口。
部署完成后,即可通过 Triton 的/v2/models/ensemble/generate接口发起推理请求,把复杂的 MPI 组网完全交给 LWS 托管。
实战四:NVIDIA NIM 集成 ✅
NVIDIA NIM 是 NVIDIA 推出的企业级模型推理微服务方案。值得注意的是,NVIDIA 官方明确推荐使用 LeaderWorkerSet 来部署多节点 NIM 模型——这是 LWS 生态获得顶级厂商背书的标志。
借助 LWS,NIM 的多节点部署可以直接复用 vLLM/SGLang 类似的 Leader-Worker 模式:Leader 承载 NIM 推理端点,Worker 参与张量并行,整体由 LWS 统一编排生命周期,让企业级推理服务在 Kubernetes 上获得与开源框架一致的一致性体验。
生态扩展:调度、HPA 与更多能力 🌐
除了推理框架集成,LWS 生态还在不断壮大:
- Gang Scheduling(同组调度):配合 Volcano 调度器(docs/examples/gang-scheduling/),保证一组 Pod 要么全部调度成功、要么全部等待,避免资源浪费:
- HPA 弹性伸缩:LeaderWorkerSet 支持 HorizontalPodAutoscaler,按副本组为单位自动扩缩容,参考 docs/examples/horizontal-pod-autoscaler.yaml;
- DisaggregatedSet:面向 Prefill/Decode 分离架构的下一代 API(api/disaggregatedset/v1/),进一步优化长上下文推理成本;
- 滚动更新与故障恢复:支持
RecreateGroupOnPodRestart等重启策略,组内任意 Pod 异常即整组重建,保证分布式状态的一致性。
快速上手:3 步开始 🚀
想亲自体验?克隆官方仓库即可获得全部示例:
git clone https://gitcode.com/gh_mirrors/lws2/lws然后参考 docs/examples/lws.yaml 部署一个最小示例,再按上面的四大实战逐个替换为 vLLM、SGLang、TensorRT-LLM 或 NIM 的 YAML 文件即可。
总结
LeaderWorkerSet 用「一组 Pod 一个复制单元」的极简抽象,统一了 vLLM、SGLang、TensorRT-LLM 与 NVIDIA NIM 的分布式推理编排方式。无论你是刚接触 Kubernetes 推理的新手,还是负责大规模 LLM 服务的平台工程师,LWS 都能大幅降低多节点部署的复杂度。生态全景已就绪,剩下的,就是动手部署你的第一个分布式推理服务了!🎯
【免费下载链接】lwsLeaderWorkerSet: An API for deploying a group of pods as a unit of replication项目地址: https://gitcode.com/gh_mirrors/lws2/lws
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
