课程导论: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%。后来改用自定义指标,才解决问题。

课程目标

这门课的目标很明确:

  1. 理解HPA原理:不只是会用,还要知道它怎么工作的。
  2. 掌握vLLM特性:知道它的负载模式、瓶颈在哪。
  3. 实战配置:从指标采集到HPA配置,手把手带你走一遍。
  4. 避坑指南:我踩过的坑,你就不用再踩了。

前置知识

学这门课,你需要:

  • Kubernetes基础:知道Pod、Deployment、Service是什么
  • Docker基础:会写Dockerfile,知道镜像怎么构建
  • Linux基础:会看日志、查进程、用命令行
  • GPU基础:知道CUDA、显存是什么

如果你还不太熟,也没关系。我会在课程里穿插一些基础知识讲解。但说实话,完全零基础可能会有点吃力。

注意:这门课涉及GPU节点配置。如果你没有GPU集群,可以用模拟环境学习。我会在后续章节介绍怎么搭建模拟环境。

知识体系总览

下面这张图,是我梳理的课程知识体系。你可以先看看整体结构:

K8s HPA自动扩缩vLLM 知识体系 HPA + vLLM 核心 HPA原理与配置 vLLM负载特性 指标采集与监控 指标类型与算法 自定义指标 显存与延迟 请求队列模型 Prometheus 实战:配置HPA + 部署vLLM + 压力测试 优化:冷启动、预热、弹性策略 生产级最佳实践

这张图展示了课程的整体脉络。从HPA和vLLM的核心概念出发,逐步深入到指标采集、实战配置,最后到生产优化。每个环节我都会结合自己的实战经验来讲。

我的建议

学这门课,别急着上手操作。先理解原理,再动手实践。我见过太多人一上来就配HPA,结果配错了都不知道错在哪。

另外,准备好一个测试环境。最好是有一套GPU集群,没有的话用模拟环境也行。我会在后续章节教你怎么搭建。

好了,导论就到这里。咱们下一章见。


公众号:蓝海资料掘金营,微信deep3321