用途
llm-inference-scaling 用于在 Kubernetes 上对 LLM 推理集群做自动水平扩缩容,核心是结合 KEDA、GPU 与请求队列相关指标,以及集群自动扩缩器,按实际负载调整推理 Pod 数量,并借助 Spot 实例和队列化批处理控制成本。
主要能力
- GPU 节点准备:使用 NVIDIA GPU Operator 的 Helm 安装命令,启用驱动、DCGM 与设备插件,并验证节点被识别。
- vLLM 部署示例:给出带
nvidia.com/gpu资源请求/限制、健康检查与模型服务参数的 Deployment 配置。 - KEDA 指标扩缩:基于 Prometheus 的 vLLM 等待请求数与 GPU KV 缓存使用率设置
ScaledObject,含最小/最大副本、冷却与轮询参数。 - 队列化批推理:用 Redis + KEDA
ScaledJob为异步批任务按队列长度扩缩工作副本。 - Spot/按需混合策略:通过节点亲和与集群自动扩缩器优先级配置,优先使用 Spot GPU 并保留按需回退。
- 扩缩监控指标:提供等待请求数、KV 缓存利用率、生成吞吐与首 token 延迟的 Prometheus 查询示例。
- 常见问题排查:列出 Pod Pending、扩容过慢、GPU 碎片、Spot 驱逐、KEDA 不扩缩等问题的原因与修复方向。
使用方式
按资料顺序:先安装 NVIDIA GPU Operator 并确认 GPU 节点;再以示例 Deployment 部署 vLLM 模型服务;随后配置 KEDA ScaledObject 或 ScaledJob 触发器;如需成本优化,再配置节点优先级、节点亲和与集群自动扩缩器。所有扩缩阈值与 Prometheus 查询需在目标集群验证。
适用场景
适用于 LLM API 流量不可预测需要自动扩缩、管理 vLLM/TGI 推理 Pod 集群、用 Spot/可抢占 GPU 降低推理成本、为批推理任务做基于队列的扩缩,以及构建共享 GPU 资源的多模型服务平台。
前提与限制
前提包括:带 GPU 节点的 Kubernetes 集群(已装 NVIDIA Operator)、KEDA、带 GPU 指标的 Prometheus(dcgm-exporter 或 gpu-operator)、Helm 3+。限制与注意事项:基础设施命令可能影响服务,变更前应确认目标并准备备份/快照;资料仅含文档,未捆绑上游脚本与模板;PodDisruptionBudget 只约束自愿中断,不覆盖 Spot 抢占或节点故障;GPU 工作负载必须显式声明 nvidia.com/gpu 资源与兼容设备插件,缺少这些内容的 ScaledJob 示例并不完整;经典 Prometheus 直方图桶需先按 le 聚合再计算分位数;应固定已审查的镜像、校验指标标签与扩缩器 schema,并在自动扩缩前设定成本上限。