You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Kubernetes HPA仅在平均CPU使用率持续超阈值时扩容?

配置Kubernetes HPA实现持续阈值触发扩容

可以实现,Kubernetes的HPA(Horizontal Pod Autoscaler)v2及以上版本支持通过behavior字段配置扩容触发的延迟逻辑,确保仅当CPU使用率持续超过阈值达到指定时长后才执行扩容。

核心配置思路

通过behavior.scaleUp.stabilizationWindowSeconds参数设定稳定窗口时长,HPA会在该窗口内持续监测指标,只有当指标在整个窗口周期内均满足阈值条件时,才会触发扩容动作。同时可配合policies.periodSeconds调整评估周期,强化触发的准确性。

示例配置YAML

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: cpu-based-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: your-deployment-name
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70 # CPU使用率阈值(70%)
  behavior:
    scaleUp:
      stabilizationWindowSeconds: 300 # 持续满足阈值的时长(5分钟=300秒)
      policies:
      - type: Percent
        value: 100 # 每次扩容的比例(当前副本数的100%,即翻倍)
        periodSeconds: 60 # 每次扩容决策的评估周期(60秒)

关键字段说明

  • stabilizationWindowSeconds: 300:HPA会参考过去5分钟的指标数据,只有这段时间内的平均CPU使用率持续超过70%,才会触发扩容。
  • policies.periodSeconds: 60:指定每60秒评估一次指标状态,配合稳定窗口,确保多次评估结果均满足阈值条件才执行扩容。
  • 需确保使用autoscaling/v2或更高版本的API,behavior字段是v2版本新增的特性。

额外注意事项

  • Kube-controller-manager的--horizontal-pod-autoscaler-sync-period参数默认是15秒,控制HPA的指标同步频率,该值会影响指标采样的密度,但不改变stabilizationWindowSeconds设定的触发延迟逻辑。
  • 如果需要更复杂的触发逻辑,可结合Prometheus Adapter等自定义指标方案,实现更精细化的阈值持续时间判断,但原生HPA的behavior配置已能满足大部分场景需求。

内容的提问来源于stack exchange,提问作者oceansize

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 11:17:11