HPA的Kubernetes Pod CPU使用率计算方法

Maa*_* V. 2 autoscaling docker kubernetes

有人可以解释如何在用于水平Pod自动缩放器的具有多个容器的Pod内计算CPU使用率吗?它是平均值,如何计算?

例如:如果我们有2个容器:

  • Container1请求0.5 cpu并使用0 cpu
  • Container2请求1 cpu并使用2 cpu

如果我们分别计算两者并取平均值:(0%+ 200%)/ 2 = 100%使用率?

如果我们求和并取平均值:2 / 1.5 = 133%使用率?

还是我的逻辑之路?

小智 5

从kubernetes 1.9开始,HPA将pod cpu利用率计算为pod中所有容器的总cpu使用率除以总请求数。因此,在您的示例中,计算出的使用量将为133%。我认为没有在文档中指定任何地方,但是相关代码在这里:https : //github.com/kubernetes/kubernetes/blob/v1.9.0/pkg/controller/podautoscaler/metrics/utilization.go#L49

但是,我认为这是一个实现细节。因此,它可以在将来的版本中轻松更改。