01
课程导学与环境准备
vLLM与K8s是什么?为什么需要容器化部署?课程目标与前置知识。安装Docker、Minikube、kubectl。
导学环境
02
Docker基础
Docker核心概念(镜像、容器、仓库)。常用Docker命令(pull、run、exec、build、push)。编写第一个Dockerfile。
容器Dockerfile
03
Kubernetes核心概念
Pod、Deployment、Service、Namespace。kubectl常用命令。理解声明式API。
PodService
04
Minikube实战
启动Minikube集群。部署一个Nginx应用。暴露服务并访问。
MinikubeNginx
05
vLLM初探
vLLM是什么?为什么快?PagedAttention原理简介。本地运行vLLM推理。
推理PagedAttention
06
vLLM Docker镜像制作
编写vLLM的Dockerfile。构建镜像并推送到仓库。验证镜像可用性。
镜像Dockerfile
07
K8s Pod部署vLLM
编写vLLM的Pod YAML。使用kubectl apply部署。查看Pod日志与状态。
PodYAML
08
K8s Deployment部署vLLM
为什么需要Deployment?编写Deployment YAML。实现滚动更新与回滚。
Deployment滚动更新
09
K8s Service暴露vLLM
Service类型(ClusterIP、NodePort、LoadBalancer)。编写Service YAML。从集群外访问vLLM服务。
Service网络
10
ConfigMap与Secret管理配置
将模型路径、端口等配置抽离到ConfigMap。管理API密钥等敏感信息到Secret。挂载到Pod中使用。
ConfigMapSecret
11
持久化存储
为什么需要持久化?PV与PVC概念。使用hostPath或local卷挂载模型文件。
PVPVC
12
资源限制与请求
为vLLM Pod设置CPU/内存请求与限制。理解QoS等级。避免OOM Killer。
资源QoS
13
GPU支持
安装NVIDIA GPU Operator。在Pod中请求GPU资源。验证GPU可用性。
GPUOperator
14
水平自动伸缩(HPA)
基于CPU/内存指标自动扩缩vLLM Pod。编写HPA YAML。压力测试验证。
HPA自动伸缩
15
Ingress控制器
安装Nginx Ingress Controller。配置域名访问vLLM服务。实现HTTPS。
Ingress域名
16
健康检查与就绪探针
配置livenessProbe与readinessProbe。确保服务高可用。
探针高可用
17
日志与监控
使用kubectl logs查看日志。部署Prometheus与Grafana。监控vLLM推理延迟与吞吐量。
监控Prometheus
18
多模型部署
在一个K8s集群中部署多个vLLM模型。使用不同的Service区分。模型路由策略。
多模型路由
19
命名空间隔离
使用Namespace隔离不同环境(dev/staging/prod)。资源配额(ResourceQuota)。
Namespace隔离
20
Helm包管理
Helm基础概念。使用Helm Chart部署vLLM。自定义values.yaml。
HelmChart
21
CI/CD集成
使用GitLab CI或GitHub Actions自动构建镜像。自动部署到K8s集群。
CI/CD自动化
22
安全最佳实践
Pod安全策略(PSA)。网络策略(NetworkPolicy)。镜像扫描。
安全NetworkPolicy
23
性能调优
vLLM参数调优(max_num_seqs、gpu_memory_utilization)。K8s节点亲和性调度。
调优亲和性
24
故障排查
Pod CrashLoopBackOff排查。ImagePullBackOff处理。节点NotReady处理。
排查排错
25
备份与恢复
etcd备份。模型文件备份。恢复策略。
备份etcd
26
多集群部署
跨集群服务发现。联邦部署概念。
多集群联邦
27
生产环境注意事项
高可用架构设计。滚动更新策略。蓝绿部署与金丝雀发布。
生产蓝绿部署
28
成本优化
使用Spot实例。节点自动缩放(Cluster Autoscaler)。资源超卖。
成本Spot
29
实战项目一
搭建一个完整的vLLM推理服务平台。包含前端调用。
实战推理平台
30
实战项目二 · 总结与展望
实现一个支持多模型、自动伸缩、监控告警的生产级推理平台。课程总结与展望。
生产级总结