在GKE中如何调整Horizontal Pod Autoscaler的缩容冷却周期
GKE环境HPA缩容稳定窗口调整方案
GKE不开放用户对主节点控制面组件的配置修改权限,因此无法通过修改kube-controller-manager.yaml的启动参数调整全局HPA缩容稳定窗口。不过GKE自1.18版本起原生支持单个HPA资源自定义缩容稳定窗口,完全可以替代全局参数调整实现避免过早缩容的需求,配置方式更灵活,可针对不同工作负载设置独立的冷却规则。
配置前提
- GKE集群版本≥1.18,支持
autoscaling/v2版本的HPA API - 若集群版本低于1.18,建议先升级到官方支持的稳定版本后再使用以下配置
配置方法
在HPA资源定义中新增behavior字段,调整scaleDown下的stabilizationWindowSeconds参数即可,示例如下:
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: your-workload-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: your-workload minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 # 缩容行为自定义配置 behavior: scaleDown: # 缩容稳定窗口,单位为秒,示例为300秒(5分钟),可根据需求调整为更大的值 stabilizationWindowSeconds: 300 policies: - type: Percent value: 10 periodSeconds: 60
参数说明
stabilizationWindowSeconds代表HPA做缩容决策时会参考过去该时长内的所有指标值,取最高的副本数建议,避免临时指标波动导致的频繁、过早缩容,该配置优先级高于控制面全局默认参数,无需修改任何主节点配置即可生效。
内容的提问来源于stack exchange,提问作者avinashjha
相关产品推荐
相关产品推荐

