我在 GKE 集群上安装了最新版本(1.24.5)的stable/nginx-ingress
with 。autoscaling: true
完成部署后,HPA 表示unable to read all metrics
。
你能帮我调试和修复它吗?如果您需要更多详细信息/日志,请询问,我会提供!
谢谢
更新:
- 我可以完美运行其他 HPA
kubectl get hpa
返回CPU 未知/100m
未知/100Mi 用于 RAM
我在 GKE 集群上安装了最新版本(1.24.5)的stable/nginx-ingress
with 。autoscaling: true
完成部署后,HPA 表示unable to read all metrics
。
你能帮我调试和修复它吗?如果您需要更多详细信息/日志,请询问,我会提供!
谢谢
更新:
kubectl get hpa
返回
CPU 未知/100m
未知/100Mi 用于 RAM
似乎由于通过在入口控制器上启用自动缩放器创建的 HPA,它将在 label 上应用 HPA app=nginx-ingress
。nginx-ingressdefault-backend
也有相同的标签,因此也需要我们定义 CPU/内存资源请求/限制。
您可以在此GitHub 问题中找到更多信息
我认为可能是某些 pod 的容器没有设置相关的资源请求。根据 Kubernetes HPA文档,当这种情况发生时,无法定义 pod 的利用率(并且自动缩放器不会对该指标采取任何操作)。
您可以通过运行kubectl get hpa
列出当前的自动缩放器来进行快速检查。或者您可以使用 获得更详细的描述kubectl describe hpa
。如果您看到列出的一些目标,<unknown>
则很可能资源请求设置不正确。
如果您已经为所有 pod 设置了资源请求并且您仍然看到此消息,那么如果您分享有关如何定义请求和/或限制的更多详细信息可能会有所帮助。
Kubernetes 文档中的这些文章可能很有用:
问候!
我还不能发表评论。正如 marandall 在上面链接的GitHub 问题Jackie 中所说,这可以通过定义资源限制并添加--set controller.useComponentLabel=true --set defaultBackend.useComponentLabel=true
到 helm 命令来解决。