You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EKS集群使用Bitnami Metrics Server时HPA指标获取失败求助

EKS集群HPA结合Bitnami Metrics Server报错排查方案

一、先确认Metrics Server核心运行状态

  • 检查Pod状态:执行kubectl get pods -n kube-system | grep metrics-server,确保Pod处于Running状态,无CrashLoopBackOff或Error异常
  • 查看Pod日志:执行kubectl logs -n kube-system <metrics-server-pod-name>,重点排查证书验证、Kubelet连接相关报错(比如x509: certificate signed by unknown authority)

二、解决「the server could not find the requested resource (get pods.metrics.k8s.io)」错误

该错误表示metrics.k8s.io API资源未注册或Metrics Server未正确暴露API:

  • 验证API资源是否存在:执行kubectl api-resources | grep metrics,若未返回pods.metrics.k8s.io和nodes.metrics.k8s.io,说明API资源未注册
  • 检查Helm配置:EKS节点默认使用自签证书,需确保Metrics Server启动参数包含--kubelet-insecure-tls。查看当前配置:helm get values metrics-server -n kube-system,若缺少该参数,执行更新:
    helm upgrade metrics-server bitnami/metrics-server -n kube-system --set args[0]=--kubelet-insecure-tls
    
  • 确认APIService状态:执行kubectl get apiservices v1beta1.metrics.k8s.io,状态必须为Available=True;若为Failed,查看事件详情:kubectl describe apiservices v1beta1.metrics.k8s.io,通常是Pod未就绪或证书信任问题

三、解决「no metrics returned from resource metrics API」错误

该错误表示Metrics Server能连接API,但无法从Kubelet获取指标:

  • 检查节点端口访问权限:确认EKS节点安全组允许kube-system命名空间的Pod访问Kubelet的10250端口
  • 验证指标获取能力:执行kubectl top nodes和kubectl top pods,若这两个命令报错,优先解决Metrics Server本身的指标采集问题
  • 排查Kubelet状态:通过CloudWatch日志或节点登录查看Kubelet运行状态,确认是否有指标暴露相关异常
  • 检查HPA配置合理性:确认HPA引用的Pod标签正确,且目标Pod已配置CPU/内存资源请求(HPA需依赖资源请求计算利用率)

四、其他通用排查点

  • 版本兼容性:确认Metrics Server版本与EKS集群版本匹配,Bitnami Chart默认适配主流版本,旧集群可指定兼容版本安装
  • 端口配置:若EKS节点Kubelet端口非默认10250,需在Helm values中设置kubeletPort参数
  • 强制重启Pod:配置更新后未生效时,执行kubectl delete pod -n kube-system <metrics-server-pod-name>触发Pod重启加载新配置

内容的提问来源于stack exchange,提问作者Kaizendae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:45:41