Kubernetes 使用什么来计算 CPU 比率、请求或限制?

Pho*_*ixS 5 autoscaling kubernetes kubernetes-pod

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

例如,使用request=250andlimit=500时,您希望在 是其限制的一半时进行扩展:

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

P E*_*ram 7

targetCPUUtilizationPercentage 为 50 意味着,如果所有 Pod 的平均 CPU 利用率上升到 50% 以上,则 HPA 将扩大部署;如果所有 Pod 的平均 CPU 利用率低于 50%,则 HPA 将缩小部署(如果副本数量为超过 1

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

currentUtilization = int32((metricsTotal * 100) / requestsTotal)
Run Code Online (Sandbox Code Playgroud)

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