课程导论:HPA与vLLM概述
大家好,我是你们这趟K8s自动扩缩之旅的向导。今天咱们聊聊HPA和vLLM这对组合。
先说说HPA。全称是Horizontal Pod Autoscaler,Kubernetes里的水平自动扩缩器。说白了,就是根据负载自动调整Pod数量。负载高了就加Pod,低了就减Pod。我刚开始接触K8s时,觉得这功能挺酷的,但真正用起来才发现——坑不少。
再说vLLM。这是个大语言模型推理引擎,专门用来跑LLM推理的。它有个特点:显存占用高,请求波动大。你想想看,一个用户问「今天天气怎么样」,和另一个用户问「写一篇5000字的论文」,计算量能一样吗?
核心问题:vLLM的负载模式跟传统Web应用完全不同。传统应用是CPU/内存密集型,vLLM是GPU显存密集型。这就导致HPA的默认配置根本不好使。
为什么需要自动扩缩?
我遇到过不少团队,一开始都是手动扩缩。半夜被报警叫起来加Pod,第二天再手动减回去。累不累?当然累。
自动扩缩的好处很明显:
- 成本控制:GPU实例可不便宜。一个A100每小时几十块,闲在那里就是烧钱。
- 服务质量:用户等太久会流失。我见过一个案例,推理延迟从2秒飙到15秒,用户直接跑光了。
- 运维省心:不用半夜爬起来手动操作。嗯,这个我深有体会。
但自动扩缩vLLM有个难点:指标选择。CPU使用率?不行。内存使用率?也不行。得用GPU相关的指标,比如显存利用率、请求队列长度。这些指标怎么采集、怎么配置HPA,都是学问。
我的经验:刚开始做vLLM自动扩缩时,我直接用CPU指标配置HPA。结果呢?Pod都跑满了,CPU才用了30%。后来改用自定义指标,才解决问题。
课程目标
这门课的目标很明确:
- 理解HPA原理:不只是会用,还要知道它怎么工作的。
- 掌握vLLM特性:知道它的负载模式、瓶颈在哪。
- 实战配置:从指标采集到HPA配置,手把手带你走一遍。
- 避坑指南:我踩过的坑,你就不用再踩了。
前置知识
学这门课,你需要:
- Kubernetes基础:知道Pod、Deployment、Service是什么
- Docker基础:会写Dockerfile,知道镜像怎么构建
- Linux基础:会看日志、查进程、用命令行
- GPU基础:知道CUDA、显存是什么
如果你还不太熟,也没关系。我会在课程里穿插一些基础知识讲解。但说实话,完全零基础可能会有点吃力。
注意:这门课涉及GPU节点配置。如果你没有GPU集群,可以用模拟环境学习。我会在后续章节介绍怎么搭建模拟环境。
知识体系总览
下面这张图,是我梳理的课程知识体系。你可以先看看整体结构:
这张图展示了课程的整体脉络。从HPA和vLLM的核心概念出发,逐步深入到指标采集、实战配置,最后到生产优化。每个环节我都会结合自己的实战经验来讲。
我的建议
学这门课,别急着上手操作。先理解原理,再动手实践。我见过太多人一上来就配HPA,结果配错了都不知道错在哪。
另外,准备好一个测试环境。最好是有一套GPU集群,没有的话用模拟环境也行。我会在后续章节教你怎么搭建。
好了,导论就到这里。咱们下一章见。
公众号:蓝海资料掘金营,微信deep3321