Helm stable/nginx-ingress 具有自动缩放功能,HPA 无法读取 CPU 或内存指标

Helm stable/nginx-ingress with autoscaling, HPA couldn't read CPU or memory metrics

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

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

你能帮我调试和修复吗?如果您还需要detail/log,请询问,我会提供!

谢谢

更新:

我认为可能是部分pod的容器没有设置相关的资源请求。根据 Kubernetes HPA documentation,当发生这种情况时,无法定义 pod 的利用率(并且自动缩放器不会对该指标采取任何操作)。

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

如果您已经为所有 pods 设置了资源请求并且您仍然看到此消息,如果您分享有关如何定义请求的更多详细信息可能会有所帮助 and/or 限制。

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

Specify a memory request and memory limit

Specify a CPU request and a CPU limit

此致!

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

您可以在此找到更多信息 GitHub issue

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