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

EKS集群中kube-prometheus-stack仅采集运行节点数据问题求助

解决EKS集群中kube-prometheus-stack仅能采集单节点数据的问题
  • 检查kubelet证书与访问验证
    先在Prometheus Pod里直接测试访问其他节点的kubelet 10250端口,确认证书验证是否正常:

    kubectl exec -it <你的prometheus-pod名称> -n <命名空间> -- curl -v https://<目标节点IP>:10250/metrics --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    

    如果返回证书错误,检查目标节点kubelet的--tls-cert-file和--tls-private-key-file配置,确保证书由集群CA签发,或者Prometheus的tlsConfig里配置了正确的CA证书。

  • 排查节点网络连通性
    尽管安全组已全开,但节点本地防火墙(比如iptables、firewalld)可能拦截10250端口流量:

    1. 在目标节点上检查iptables规则:
      iptables -L INPUT -n | grep 10250
      
      确保存在允许10250端口入站的规则。
    2. 在Prometheus所在节点用telnet测试端口连通性:
      telnet <目标节点IP> 10250
      
      如果连接失败,优先解决节点间的网络可达问题。
  • 验证kube-prometheus-stack的kubelet采集配置
    检查Helm安装的ServiceMonitor是否正确配置了kubelet采集规则:

    1. 查看kubelet对应的ServiceMonitor资源:
      kubectl get servicemonitor -n <命名空间> kube-prometheus-stack-kubelet -o yaml
      
    2. 确认endpoints配置里的port为https-metrics,scheme设为https,且tlsConfig中正确引用了集群CA证书(例如caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt)。
    3. 若安装时自定义了参数,确保kubelet.serviceMonitor.enabled设置为true。
  • 检查Prometheus的RBAC权限
    确认Prometheus的ServiceAccount有权限访问节点metrics:

    kubectl get clusterrole kube-prometheus-stack-prometheus -o yaml
    

    确保ClusterRole包含以下规则:

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

    若缺少该规则,需要更新ClusterRole或重新安装Chart时确保权限配置正确。

  • 检查目标节点的kubelet状态
    在问题节点上确认kubelet是否正常监听10250端口:

    1. 查看kubelet运行日志:
      journalctl -u kubelet | grep 10250
      
    2. 检查端口监听情况:
      netstat -tulpn | grep kubelet
      

    确保kubelet无异常,10250端口处于正常监听状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:57:06