报错是这么冒出来的。推理服务跑在 K8s 上,HPA 按 CPU 70% 扩,压测时队列积压 2 万条但 CPU 只有 35%,副本一直不涨,请求在网关排队超时。

中间走过弯路,把「扩容阈值与冷却时间设置过长」当成主因,改完现象没变。

真正麻烦的地方在于,几个原因的现象几乎一样。瓶颈在 GPU 或上游配额,CPU 不是真正的瓶颈指标。另一种情况是队列长度指标没有暴露给 HPA。

另外,副本上限被 resourcequota 卡住。

动手时先确认 CPU 与队列的实际关系

kubectl top pod -l app=llm

暴露队列长度指标并接入 HPA

kubectl apply -f hpa-queue.yaml

接着按自定义指标扩容并观察副本数

kubectl get hpa llm -w

等前面都确认过,再核对配额上限是否触顶

kubectl describe resourcequota -n llm

同一份数据我导出了两份,一份留底,一份拿来试。

怎么算真的好了,看的是同一批现象。积压上升时副本数在 60 秒内增加,队列长度回落到千级以下,超时率下降。

补一句。扩容指标要选真正的瓶颈,GPU 打满时扩副本只会让排队更久。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189