01
K8s基础回顾:核心概念与vLLM部署架构
Pod、Deployment、Service、Ingress,以及vLLM在K8s上的典型部署架构
基础架构
02
vLLM服务特性:架构与显存管理
vLLM架构原理、显存管理、连续批处理,为什么需要故障转移
vLLM显存
03
故障转移概述:自愈与重启策略
故障转移概念、liveness/readiness probe、Pod重启策略
自愈Probe
04
Pod故障场景:OOM/驱动崩溃/挂死
OOM Killer、GPU驱动崩溃、进程挂死,如何通过Probe检测
故障GPU
05
Readiness Probe配置:vLLM健康检查
HTTP健康检查端点配置,避免流量打到未就绪Pod
流量就绪
06
Liveness Probe配置:检测僵死进程
检测vLLM进程僵死,配置initialDelaySeconds和periodSeconds
存活参数
07
Startup Probe配置:大模型慢加载
模型加载5-10分钟,用Startup Probe避免误杀
启动大模型
08
资源限制与请求:CPU/Memory
requests和limits设置,避免资源争抢导致Pod驱逐
资源QoS
09
GPU资源管理:共享/独占/MIG
nvidia.com/gpu声明、GPU共享与独占、MIG配置影响
GPUMIG
10
PodDisruptionBudget:最少可用实例
配置PDB确保节点维护时vLLM服务最少可用实例数
高可用PDB
11
HPA自动扩缩容:基于队列/GPU
基于请求队列长度或GPU利用率配置HPA,应对突发流量
弹性HPA
12
VPA垂直扩缩容:显存动态调整
针对vLLM显存需求动态调整资源限制,避免OOM
VPA显存
13
Cluster Autoscaler:节点级扩缩容
GPU节点资源不足时自动添加节点
节点CA
14
节点故障场景:硬件故障/宕机
GPU硬件故障、节点宕机,Node Controller与污点容忍实现转移
节点故障转移
15
污点与容忍:调度到正确节点
为GPU节点添加专用污点,确保vLLM Pod调度正确
调度污点
16
亲和性与反亲和性:分散副本
Pod间亲和性将vLLM副本分散到不同节点,提高可用性
亲和性高可用
17
StatefulSet vs Deployment
有状态服务(vLLM缓存)使用StatefulSet,无状态使用Deployment
有状态工作负载
18
持久化存储:模型文件与缓存
模型文件存储(NFS/PVC)、推理结果缓存,故障转移后挂载
存储PVC
19
ConfigMap与Secret:配置管理
管理vLLM配置参数(模型路径、量化参数)、API密钥
配置Secret
20
Ingress与负载均衡:流量分发
配置Ingress将流量分发到多个vLLM副本,实现故障转移
Ingress负载均衡
21
Service Mesh集成:Istio/Linkerd
精细流量管理和故障注入测试
Service MeshIstio
22
多副本部署策略:最佳实践
副本数计算(基于QPS和显存)
副本容量规划
23
蓝绿部署与滚动更新:零宕机
vLLM版本升级时的零宕机部署策略
发布蓝绿
24
故障模拟测试:Chaos Mesh
模拟Pod故障、网络延迟、节点宕机,验证故障转移
混沌测试
25
监控与告警:Prometheus+Grafana
监控vLLM指标:请求延迟、GPU利用率、队列长度
监控告警
26
日志收集:EFK/PLG栈
收集vLLM日志,故障时快速定位问题
日志EFK
27
常见故障案例1:OOM Killer
Pod频繁重启,调整显存分配解决
OOM案例
28
常见故障案例2:模型加载超时
Startup Probe失败,优化模型加载流程
超时优化
29
常见故障案例3:GPU推理错误
节点GPU故障导致推理错误,Readiness Probe自动摘除
GPU自愈
30
总结与最佳实践:高可用Checklist
vLLM在K8s上高可用部署的Checklist,故障转移SLA保障建议
总结SLA