1、vLLM与K8s初识:vLLM是什么、为什么需要K8s部署、vLLM+K8s的优势、课程目标与前置知识
1.1 vLLM到底是什么?
先说说vLLM。说白了,它是一个专门为大语言模型推理加速的开源框架。我最早接触它是在2023年,当时公司要上线一个对话机器人,用原生的HuggingFace Transformers跑推理,显存占用高得吓人,响应速度也慢。后来换上了vLLM,效果立竿见影。
vLLM的核心能力,我总结为三点:
- PagedAttention:这是它的杀手锏。传统方案里,KV Cache是连续分配的,容易产生碎片。vLLM把KV Cache切成固定大小的“页”,按需分配。我在项目中遇到过,同样的模型,显存利用率直接提升了2-3倍。
- 连续批处理:不用等一个请求跑完再处理下一个。vLLM可以动态地把多个请求拼成一个批次,GPU利用率拉满。你想想看,这对高并发场景有多重要。
- 高性能推理引擎:底层做了大量算子优化,支持量化、前缀缓存等高级特性。嗯,这里要注意,vLLM不是万能的,它主要针对自回归模型的文本生成场景。
一句话总结:vLLM = 更省显存 + 更高吞吐 + 更低延迟。如果你还在用原生框架跑大模型推理,我建议你试试vLLM。
1.2 为什么需要K8s部署?
单机跑vLLM当然可以,但生产环境不是这么玩的。我见过不少团队,开发环境跑得飞起,一上线就崩。为什么会这样?因为单机有太多限制。
我列举几个真实痛点:
- 资源瓶颈:单机GPU有限,模型大了根本放不下。比如一个70B的模型,至少需要4张A100。你总不能每次都手动换机器吧?
- 高可用问题:机器挂了,服务就断了。我记得有一次凌晨三点,线上GPU节点宕机,整个推理服务瘫痪了半小时。那滋味,真不好受。
- 弹性伸缩:白天流量大,晚上流量小。手动扩缩容?不现实。K8s的HPA(水平自动伸缩)可以完美解决这个问题。
- 版本管理:模型迭代频繁,每次更新都要重新部署。K8s的滚动更新和回滚机制,让这件事变得优雅。
所以,K8s不是锦上添花,而是生产环境的必需品。我个人习惯,所有线上服务必须跑在K8s上,哪怕只是一个简单的API。
1.3 vLLM + K8s 的优势
把vLLM和K8s结合起来,会产生什么化学反应?我直接说结论:1+1 > 2。
| 维度 | 单独vLLM | vLLM + K8s |
|---|---|---|
| 资源管理 | 手动分配GPU | 自动调度,GPU资源池化 |
| 高可用 | 单点故障 | 多副本 + 自动恢复 |
| 弹性伸缩 | 手动扩缩 | 基于指标自动伸缩 |
| 部署更新 | 停机更新 | 滚动更新,零停机 |
| 监控运维 | 基本没有 | Prometheus + Grafana 全家桶 |
举个例子。我之前负责一个智能客服项目,高峰期每秒有上千个请求。单机vLLM扛不住,我们就用K8s部署了8个vLLM副本,配合HPA,流量上来自动扩容,流量下去自动缩容。GPU利用率从40%提升到了85%,成本反而降了30%。
我的经验:vLLM + K8s 特别适合多模型、多租户的场景。你可以把不同模型部署在不同的Pod里,通过Ingress做路由分发,互不干扰。
1.4 课程目标
这门课的目标很明确:让你从零到一,掌握vLLM在K8s上的多副本部署。学完之后,你能做到:
- 独立搭建vLLM推理服务,并打包成Docker镜像
- 编写K8s YAML文件,部署多副本vLLM服务
- 配置Service、Ingress,实现负载均衡
- 使用HPA实现自动弹性伸缩
- 集成监控和日志,快速定位问题
- 掌握滚动更新、回滚等运维技巧
我不会讲太多理论,更多的是实战。每个章节都有可运行的代码和配置,你跟着做就行。
1.5 前置知识
这门课需要你有一些基础。我列个清单,你对照看看:
- Docker基础:知道怎么写Dockerfile,会构建和推送镜像。如果你连docker run都不会,建议先补一下。
- K8s基础:了解Pod、Deployment、Service、Ingress这些核心概念。不需要精通,但至少知道它们是干嘛的。
- Python基础:vLLM的API调用和配置会用到Python,不要求多深,能看懂代码就行。
- GPU环境:你最好有一块NVIDIA显卡,或者能访问到GPU集群。没有也没关系,我会讲CPU部署的替代方案。
避坑指南:我曾经遇到过学员连K8s集群都没装好就来学,结果卡在环境搭建上。我建议你先准备好一个可用的K8s集群,哪怕是用minikube或者kind都行。
1.6 本章知识体系
为了让你更直观地理解本章内容,我画了一张图。它展示了vLLM、K8s以及两者结合的核心逻辑。
这张图很清晰:vLLM负责推理加速,K8s负责运维管理。两者结合,就是生产级的推理服务。后面的课程,我们会一步步把这个架构落地。