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

EKS集群中Prometheus抓取Kubelet返回HTTP 400错误的原因咨询

抓取Kubelet Metrics返回400 Bad Request的排查方向(EKS环境)

先确认错误日志:

ts=2022-11-14T19:42:49.643418574Z caller=scrape.go:1302 
level=debug agent=prometheus instance=6adb012c62a4c8a8139b7fbf04a08668 component="scrape manager" 
scrape_pool=integrations/kubernetes/kubelet target=http://kubernetes.default.svc.cluster.local:443/api/v1/nodes/ip-192-168-0-8.ec2.internal/proxy/metrics 
msg="Scrape failed" 
err="server returned HTTP status 400 Bad Request"

针对这个错误,常见的排查方向如下:

  • 协议与端口不匹配:你用http://访问了443端口,而Kubelet的metrics端点默认使用HTTPS协议。HTTP请求发送到HTTPS端口会被Kubelet直接拒绝,返回400错误。需要将抓取URL中的http替换为https。

  • 节点名称或路径错误:检查URL中的节点名称ip-192-168-0-8.ec2.internal是否和EKS集群中实际存在的节点名称完全一致。如果节点名称拼写错误,Kubernetes API Server无法正确代理请求到目标Kubelet,会返回400错误。

  • 缺少必要的认证权限:EKS中Kubelet默认启用了认证机制,Grafana Agent使用的ServiceAccount需要具备访问nodes/proxy和nodes/metrics资源的权限。检查绑定到Agent ServiceAccount的ClusterRole是否包含以下规则:

    rules:
    - apiGroups: [""]
      resources: ["nodes/proxy", "nodes/metrics"]
      verbs: ["get"]
    

    权限不足时,API Server可能返回400或403错误(部分场景下会表现为400)。

  • Kubelet的metrics配置问题:检查Kubelet的启动参数,确认--enable-metrics=true(默认开启),以及是否存在--allow-privileged等可能影响端点访问的参数。另外,部分Kubelet版本可能需要指定具体的metrics子路径(比如/metrics/cadvisor、/metrics/probes),直接访问/metrics可能触发格式错误。

  • 请求头部缺失:Kubelet的metrics接口可能需要特定的请求头部,比如Accept: application/json或Accept: text/plain。如果Grafana Agent的抓取配置中没有设置正确的头部,可能会被Kubelet拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:20:37