我在GKE群集上安装了stable/nginx-ingress
和autoscaling: true
的最新版本(1.24.5)。
完成部署后,HPA说unable to read all metrics
。
您能帮我调试和修复它吗?如果您需要更多详细信息/日志,请询问,我会提供!
谢谢
更新:
kubectl get hpa
返回
CPU未知/ 100m
RAM的未知数100Mi
答案 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
答案 3 :(得分:0)
我无法发表评论。正如marandall在上面链接的GitHub issue Jackie中所说,可以通过定义资源限制并将--set controller.useComponentLabel=true --set defaultBackend.useComponentLabel=true
添加到helm命令中来解决此问题。