典型事故
业务高峰来临,HPA 根据 CPU 拉副本;同时 VPA 建议提升 requests,导致 Pod 频繁重建。结果不是稳定,而是不断抖动。
协同原则
- HPA 负责“横向弹性”(副本数)。
- VPA 负责“纵向建议”(资源基线)。
- 两者不要同时直接控制同一 Deployment 的同一资源维度。
实操模式
- 在线服务:HPA + VPA(recommendation only)。
- 离线作业:VPA(auto) + 关闭 HPA。
- 把 VPA 建议周期性写回 Helm values,再经灰度发布生效。
关键参数
- HPA 目标指标建议使用自定义业务指标(QPS、队列深度),不要只盯 CPU。
- HPA
behavior里设置 scaleDown 稳定窗口,防止“刚扩就缩”。 - VPA 设置
minAllowed/maxAllowed,避免极端建议。
观测面板建议
- 当前副本数与目标副本数差值。
- Pod 重建频率与重建原因。
- requests 利用率分布(而非平均值)。
小结
HPA 与 VPA 本质上是两个控制器。让它们协同的关键,不是“都开”,而是“职责分离 + 变更节流 + 可观测闭环”。