3

当您在 Kubernetes 中指定 Horizo​​ntal Pod Autoscaler 例如targetCPUUtilizationPercentage为 50 时,Kubernetes 使用什么来计算 CPU 比率、请求或容器的限制?

因此,例如,使用request=250andlimit=500并且您想在是其限制的一半时进行扩展:

  • 如果它使用request,我会将目标至少设置为 100%,因为它可以提高到 200%。
  • 如果它使用limit,我会使用 target = 50% 因为 100% 意味着达到了限制。
4

1 回答 1

4

targetCPUUtilizationPercentage 为 50 意味着如果所有 Pod 的平均 CPU 利用率高于 50%,则 HPA 将扩大部署,如果所有 Pod 的平均 CPU 利用率低于 50%,则如果副本数量减少,HPA 将缩减部署超过 1

刚查了代码,发现targetUtilization百分比计算使用的是资源请求。参考下面的代码

currentUtilization = int32((metricsTotal * 100) / requestsTotal)

这是链接 https://github.com/kubernetes/kubernetes/blob/v1.9.0/pkg/controller/podautoscaler/metrics/utilization.go#L49

于 2019-12-03T12:42:08.910 回答