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

Kubernetes HPA计算中currentReplicas的定义及扩容场景取值咨询

Kubernetes HPA中currentReplicas的取值疑问

背景

Kubernetes的Horizontal Pod Autoscaler(HPA)计算期望副本数的公式为:
desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]

我们集群里部分HPA配置了5秒的扩容周期规则:

behavior:
  scaleUp:
    policies:
    - type: Percent
      value: 100
      periodSeconds: 5

我理解这是“每5秒将Pod数量翻倍”的意思。

场景

由于队列涌入大量消息,Pod需要从100副本扩容到200副本。扩容过程中,10个Pod很快完成调度,剩下90个Pod因为等待cluster-autoscaler创建新节点而处于Pending状态,这个过程要花1-2分钟。

问题

5秒后HPA再次计算时,currentReplicas的取值是哪个选项?
a) 110副本
b) 200副本
c) 其他

另外想明确:currentReplicas的定义到底是什么?NotReady状态的Pod会被计入currentReplicas的统计吗?

解答

  • 答案是选项a:110副本
  • currentReplicas的定义:指目标控制器(比如Deployment、StatefulSet)当前管理的所有有效Pod数量,包含Pending、Running(无论是否Ready)状态的Pod,但不包含已经进入终止流程(Terminating状态)的Pod。
  • NotReady状态的Pod是否计入:会被计入。只要Pod还属于目标控制器的副本集合,且没有被标记为删除,不管是Pending、ContainerCreating还是NotReady状态,都会被统计到currentReplicas里。

所以这个场景中,原有的100个Pod加上刚调度完成的10个Pod,总共110个都属于当前副本数,HPA计算时会用110作为currentReplicas的取值。

内容的提问来源于stack exchange,提问作者E. Pratt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:12:37