大模型推理平台架构设计(vLLM + 分层架构 + 弹性扩缩)
2026-08-11 09:57:40 # Kubernetes

一、背景

大模型推理追求高吞吐、低延迟。vLLM 等推理引擎通过 PagedAttention、continuous batching 大幅提升吞吐。在 K8s 上需设计分层可弹性伸缩的推理平台。

二、环境信息

  • K8s + GPU 节点(A100/L20)
  • 推理引擎:vLLM 0.4.x
  • 模型存储:对象存储(S3) 或 PVC(共享文件系统)
  • 路由:Ingress / Gateway

三、操作要点

分层架构

1
2
3
接入层  :Ingress / API Gateway(鉴权、限流、路由)
推理层 :vLLM Deployment(多副本,--tensor-parallel-size 按卡数)
模型层 :模型权重(initContainer 从 S3 拉取,或挂载 PVC/Ceph)

vLLM 部署片段

1
2
3
4
5
6
containers:
- name: vllm
image: vllm/vllm-openai:latest
args: ["--model", "Qwen2-72B", "--tensor-parallel-size", "4",
"--gpu-memory-utilization", "0.9", "--max-model-len", "8192"]
resources: { limits: { nvidia.com/gpu: 4 } }

弹性伸缩

1
2
kubectl autoscale deployment vllm --cpu-percent=70 --min=2 --max=8
# 更合理:基于 QPS / 队列长度的自定义指标 HPA

四、验证方式

1
2
3
curl http://<svc>/v1/completions -H "Content-Type: application/json"   -d '{"model":"Qwen2-72B","prompt":"你好","max_tokens":32}'
kubectl get hpa # 副本随负载变化
kubectl top pods # GPU 利用率

五、常见问题

  • 显存不足 OOM:调小 --gpu-memory-utilization--max-model-len,或增加 TP 卡数
  • 模型加载慢 / 冷启动:预热副本、模型权重放本地 PVC
  • 单副本瓶颈:增加副本 + 网关负载均衡;超长上下文需更多显存
  • 版本回滚:用 Deployment 滚动更新与 revisionHistoryLimit 保留历史