HPA(Horizo​​ntal pod autoscaling)是否考虑 CPU 使用多个容器(在一个 pod 中)的平均值来扩展 pods?

Does HPA(Horizontal pod autoscaling) considers the mean of CPU utilization of multiple containers(in a pod) to scale the pods?

我想知道,如果 HPA 考虑了 pod 中多个容器的 CPU 利用率的平均值,以便扩展 up/down 没有。 pods。例如,如果我为具有 2 个容器的部署 (pod) 指定如下所示的 HPA。为了让 HPA 扩大规模,是否需要两个容器中的 CPU 利用率都达到 80%?换句话说,如果 容器 A 的 CPU 利用率为 80%,但 容器 B 的 CPU 利用率仅为 60 %。这是否意味着 pods 不会被 HPA 放大。据我观察,是这样的。但我不确定这一点,因为在 kubernetes 文档中没有关于此的明确声明。不幸的是,我不是最擅长从源代码中弄清楚这一点的开发人员。任何帮助和如果可能参考,将不胜感激。非常感谢。

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: blackbox-rc-hpa
  namespace: monitoring
spec:
  scaleTargetRef:
    apiVersion: v1
    kind: extensions/v1beta1
    name: blackbox
  minReplicas: 1
  maxReplicas: 4
  targetCPUUtilizationPercentage: 80

请求的pod资源是它所有容器请求的资源的总和。因此,在那种情况下,您可能有 70% CPU 的利用率。

控制器计算每个 Pod 中容器的利用率值(百分比),然后取平均值。 所以在你的场景中意味着 70% https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

targetCPUUtilizationPercentage 有 10% 的公差。在您的情况下,平均 cpu 利用率应大于 88% 才能触发扩大,小于 72% 才能缩小。由于平均 CPU 利用率为 70%,您的副本将缩减为 1 个。