HPA(水平pod自动调节)是否考虑了多个容器(在一个容器中)的CPU利用率的平均值来扩展容器?

时间:2017-09-09 22:27:56

标签: kubernetes kubectl kubernetes-health-check

我想知道,如果HPA考虑了pod中多个容器的CPU利用率的平均值,那么为了扩大/缩小no。豆荚例如,如果我为具有2个容器的部署(pod)指定了如下所示的HPA。为了使HPA能够扩展,它是否需要在两个容器中将CPU利用率提高到80%?换句话说,如果容器A 的CPU利用率为80%,而容器B 的CPU利用率仅为60%。这是否意味着播放机不会被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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

targetCPUUtilizationPercentage的容忍度为10%。在您的情况下,平均CPU利用率应大于88%以触发扩展,并且小于72%以缩小。由于平均CPU使用率为70%,因此您的副本将缩小为1。