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

如何临时禁用基于STS的应用的HPA且不删除它?

临时禁用HPA的可行方案(无需删除)

以下几种方法可以在不删除HPA的前提下临时禁用自动扩缩容,且后续可轻松恢复:

方法1:固定HPA的副本数范围

将HPA的minReplicas和maxReplicas设置为当前STS运行的实际副本数,让HPA没有扩缩容的空间,直接禁用自动调节逻辑。

  1. 先获取当前STS的副本数:
kubectl get sts <你的STS名称> -o jsonpath='{.spec.replicas}'
  1. 假设当前副本数为3,执行patch命令修改HPA:
kubectl patch hpa <你的HPA名称> -p '{"spec":{"minReplicas":3,"maxReplicas":3}}'
  1. 恢复时,改回原有的副本数范围即可(示例为min=1,max=5):
kubectl patch hpa <你的HPA名称> -p '{"spec":{"minReplicas":1,"maxReplicas":5}}'

方法2:调整触发阈值至无法达到的范围

修改HPA的资源使用率阈值,让自动扩缩容的触发条件永远无法满足。

  • 若HPA基于CPU使用率,将阈值调至极高:
kubectl patch hpa <你的HPA名称> -p '{"spec":{"metrics":[{"resource":{"name":"cpu","target":{"averageUtilization":1000}},"type":"Resource"}]}}'
  • 若HPA基于内存使用率,同理调至极高:
kubectl patch hpa <你的HPA名称> -p '{"spec":{"metrics":[{"resource":{"name":"memory","target":{"averageUtilization":2000}},"type":"Resource"}]}}'
  • 恢复时,改回原阈值即可(示例为CPU使用率70%):
kubectl patch hpa <你的HPA名称> -p '{"spec":{"metrics":[{"resource":{"name":"cpu","target":{"averageUtilization":70}},"type":"Resource"}]}}'

方法3:通过注解禁用扩缩容

部分Kubernetes版本支持使用注解直接暂停HPA的扩缩操作:

  • 禁用缩容:
kubectl annotate hpa <你的HPA名称> autoscaling.kubernetes.io/scale-down-disabled=true
  • 禁用扩容:
kubectl annotate hpa <你的HPA名称> autoscaling.kubernetes.io/scale-up-disabled=true
  • 同时禁用扩缩容:
kubectl annotate hpa <你的HPA名称> autoscaling.kubernetes.io/scale-down-disabled=true autoscaling.kubernetes.io/scale-up-disabled=true
  • 恢复时,删除对应注解:
kubectl annotate hpa <你的HPA名称> autoscaling.kubernetes.io/scale-down-disabled- autoscaling.kubernetes.io/scale-up-disabled-

注意事项

如果你的STS通过Operator或GitOps工具自动同步HPA配置,需确认修改后的配置不会被STS覆盖。这种情况下优先选择方法1或方法3,注解通常不会被基础STS资源管理逻辑覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:13:24