K8s上vLLM推理引擎配置自学入门

📚 共计 30 章节
01
课程导学与AI推理基础
了解大模型推理的挑战,vLLM是什么,为什么选择在K8s上部署。
导学推理
02
Kubernetes核心概念速览
Pod、Deployment、Service、ConfigMap、Secret,为部署vLLM做准备。
K8s基础概念
03
vLLM架构与核心特性
PagedAttention原理、连续批处理、量化支持(AWQ/GPTQ)。
架构量化
04
环境准备
安装kubectl、配置K8s集群(Minikube或云厂商)、安装Helm。
工具集群
05
Docker基础与镜像制作
编写Dockerfile,构建vLLM推理镜像,推送到镜像仓库。
Docker镜像
06
第一个vLLM Pod
使用kubectl run创建单Pod,暴露端口,测试推理接口。
Pod快速体验
07
Deployment管理vLLM
编写Deployment YAML,设置副本数、资源限制、健康检查。
DeploymentYAML
08
Service与网络暴露
创建ClusterIP、NodePort、LoadBalancer Service,让外部访问vLLM。
网络Service
09
ConfigMap与Secret管理配置
将模型路径、API密钥等配置外化,实现配置与镜像分离。
配置ConfigMap
10
持久化存储
使用PersistentVolume和PersistentVolumeClaim挂载大模型文件。
存储PVC
11
Ingress与域名访问
配置Ingress Controller,通过域名和HTTPS访问vLLM服务。
Ingress域名
12
资源管理
设置CPU/内存Requests和Limits,避免资源争抢,提升推理稳定性。
资源稳定性
13
自动扩缩容(HPA)
基于CPU/内存或自定义指标(如请求队列长度)自动扩缩Pod。
HPA弹性
14
GPU管理与调度
配置NVIDIA GPU Operator,使用nvidia.com/gpu资源,处理GPU显存不足。
GPU显存
15
模型加载优化
使用vLLM的--dtype、--max-model-len、--gpu-memory-utilization参数。
优化参数
16
性能调优
调整--max-num-batched-tokens、--max-num-seqs,提升吞吐量。
吞吐调优
17
日志与监控
使用kubectl logs、Loki/Prometheus Stack收集vLLM日志和指标。
监控Loki
18
健康检查与自愈
配置livenessProbe和readinessProbe,确保Pod自动重启。
自愈探针
19
滚动更新与回滚
使用Deployment的滚动更新策略,安全升级vLLM版本。
更新回滚
20
多模型管理
在一个K8s集群中部署多个vLLM服务,使用不同Service隔离。
多模型隔离
21
使用Helm Chart部署
编写Helm Chart,参数化部署vLLM,实现一键安装。
Helm一键部署
22
K8s网络策略
配置NetworkPolicy,限制vLLM Pod的入站和出站流量。
网络策略安全
23
安全实践
Pod安全上下文、服务账户、RBAC权限控制。
RBAC安全
24
CI/CD集成
使用GitLab CI/GitHub Actions自动构建镜像并部署到K8s。
CI/CD自动化
25
A/B测试与金丝雀发布
通过Service Mesh或K8s原生方式实现vLLM版本灰度。
金丝雀灰度
26
故障排查实战
Pod CrashLoopBackOff、ImagePullBackOff、OOMKilled等常见问题。
排障实战
27
性能基准测试
使用locust或hey对vLLM服务进行压测,分析P99延迟。
压测P99
28
成本优化
使用Spot实例、节点自动缩放、合理设置资源配额。
成本Spot
29
生产环境最佳实践
多副本、反亲和性、PodDisruptionBudget、备份策略。
生产高可用
30
课程总结与进阶方向
从vLLM到TensorRT-LLM,从K8s到云原生AI平台。
总结进阶