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

如何在多类Kubernetes环境中修改并配置HPA自动扩缩容行为

各环境HPA自定义扩缩容行为配置方法

通用基础逻辑

首先确认你的Kubernetes集群版本不低于1.18,只有该版本及以上的HPA API(1.18-1.22用autoscaling/v2beta2,1.23+正式稳定为autoscaling/v2)才支持自定义扩缩容行为的behavior字段。该配置直接写在对应HPA资源的YAML定义中,无需修改集群全局配置文件,基础配置结构示例如下:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: 你的HPA名称
  namespace: 对应工作负载的命名空间
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: 目标工作负载名称
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70
  # 以下为自定义扩缩容行为配置
  behavior:
    scaleUp:
      stabilizationWindowSeconds: 60 # 扩容稳定窗口,单位秒
      policies:
      - type: Percent
        value: 100
        periodSeconds: 15
    scaleDown:
      stabilizationWindowSeconds: 300 # 缩容稳定窗口,单位秒
      policies:
      - type: Percent
        value: 10
        periodSeconds: 60

修改完成后执行kubectl apply -f 你的HPA文件名.yaml即可生效。

1. Docker Desktop 环境

  • 先进入设置-Kubernetes面板,确认Kubernetes功能已启用且版本≥1.18
  • 打开本地终端执行kubectl get hpa -A找到需要修改的HPA资源
  • 可以直接执行kubectl edit hpa <HPA名称> -n <对应命名空间>,在弹出的编辑器中新增behavior字段配置,保存退出后自动生效
  • 也可以将现有HPA导出为本地YAML文件:kubectl get hpa <HPA名称> -n <命名空间> -o yaml > hpa.yaml,修改完成后再执行apply操作即可

2. Baremetal 裸金属Kubernetes环境

  • 先通过kubectl version确认集群服务端版本≥1.18
  • 如果你原本就通过YAML文件管理HPA资源,直接在原HPA文件中新增behavior字段配置后重新apply即可
  • 没有留存原YAML文件的场景,可使用和Docker Desktop完全一致的kubectl edit或者导出YAML修改后apply的方式操作
  • 若集群开启了RBAC,确保操作账号有对应命名空间下HPA的编辑权限即可

3. Rancher 环境

  • 进入Rancher UI的对应集群管理页面,在左侧菜单找到「服务发现-水平Pod自动扩缩容」(不同Rancher版本路径略有差异,也可以直接在全局资源搜索HPA)
  • 找到需要修改的HPA条目,点击右侧的操作按钮选择「编辑YAML」
  • 在弹出的编辑器中找到spec字段,新增behavior对应的配置内容,点击保存即可直接生效
  • 你也可以在本地配置好该Rancher集群的kubeconfig,用kubectl命令行操作,逻辑和前两个环境完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:57:02