具有自动缩放功能的头盔稳定/ nginx入口,HPA无法读取CPU或内存指标

时间:2019-11-04 06:15:17

标签: google-kubernetes-engine kubernetes-helm autoscaling nginx-ingress kubernetes-hpa

我在GKE群集上安装了stable/nginx-ingressautoscaling: true的最新版本(1.24.5)。

完成部署后,HPA说unable to read all metrics

enter image description here

您能帮我调试和修复它吗?如果您需要更多详细信息/日志,请询问,我会提供!

谢谢

更新:

  • 我可以完美地运行其他HPA
  • kubectl get hpa返回

    CPU未知/ 100m

    RAM的未知数100Mi

4 个答案:

答案 0 :(得分:1)

看来,由于通过在入口控制器上启用自动定标器而创建的HPA,它将在标签app=nginx-ingress上应用HPA。 nginx入口default-backend也具有相同的标签,因此也需要我们定义CPU /内存资源的请求/限制。

您可以在此GitHub issue

中找到更多信息

答案 1 :(得分:0)

我认为可能是某些吊舱的容器未设置相关的资源请求。根据Kubernetes HPA documentation,当发生这种情况时,将无法定义Pod的利用率(并且自动缩放器不会对该指标执行任何操作)。

您可以通过运行0列出当前的自动缩放器来进行快速检查。或者,您可以使用kubectl get hpa获得更详细的描述。如果您看到某些目标列为kubectl describe hpa,则很可能是资源请求设置不正确。

如果您已经为所有Pod设置了资源请求,但仍然看到此消息,那么,如果您共享有关如何定义请求和/或限制的更多详细信息,也许会有所帮助。

Kubernetes文档中的这些文章可能会有用:

Specify a memory request and memory limit

Specify a CPU request and a CPU limit

致谢!

答案 2 :(得分:0)

这里有同样的问题...有什么想法吗?

  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 75
  - type: Resource
    resource:
      name: memory
      targetAverageUtilization: 75

enter image description here

答案 3 :(得分:0)

我无法发表评论。正如marandall在上面链接的GitHub issue Jackie中所说,可以通过定义资源限制并将--set controller.useComponentLabel=true --set defaultBackend.useComponentLabel=true添加到helm命令中来解决此问题。