报错是这么冒出来的。推理服务跑在 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 打满时扩副本只会让排队更久。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。
