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

Kubernetes中Prometheus跨命名空间抓取指标遇连接拒绝的解决方法

问题排查与修复方案

配置语法错误修复

你的Prometheus配置存在两处明显语法问题:

  • 静态目标地址多了一个多余的>符号,正确格式应为 <application-service-name>.API.svc.cluster.local:<application-service-port>
  • YAML缩进层级错误:kubernetes_sd_configs、scrape_interval等字段需与job_name保持同一缩进级别

修复后的静态目标配置示例:

scrape_configs: 
  - job_name: 'some-job' 
    scrape_interval: 10s   
    scrape_timeout: 5s 
    static_configs:
      - targets: ['<application-service-name>.API.svc.cluster.local:<application-service-port>']

跨命名空间访问验证步骤

若修复语法后仍报Connection Refused,按以下步骤排查:

  • 确认服务可解析:在Prometheus所在Pod内执行nslookup <application-service-name>.API.svc.cluster.local,检查服务IP是否能正常解析(注意Kubernetes命名空间名称区分大小写,确保API拼写完全一致)
  • 验证端口与端点可达:在Prometheus Pod内用curl http://<application-service-name>.API.svc.cluster.local:<application-service-port>/metrics测试,确认应用的metrics端点是否正常响应
  • 检查网络策略:确认API命名空间未配置阻止prometheus命名空间访问的NetworkPolicy,必要时添加允许Prometheus所在命名空间访问该服务端口的策略
  • 推荐方案:使用Kubernetes服务发现
    无需手动维护静态目标,通过服务发现自动抓取API命名空间的服务,配置示例:
    scrape_configs: 
      - job_name: 'api-apps' 
        scrape_interval: 10s   
        scrape_timeout: 5s 
        kubernetes_sd_configs:
          - role: service
            namespaces:
              names: ['API']
        relabel_configs:
          # 可选:仅抓取带指定标签的服务
          - source_labels: [__meta_kubernetes_service_label_app]
            regex: <你的应用标签>
            action: keep
          # 指定metrics端点路径,默认/metrics
          - target_label: __metrics_path__
            replacement: /metrics
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:27:20