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

Prometheus指标kube_pod_container_status_running随机消失求助

问题描述

Kubernetes集群中运行多个Pod,通过Prometheus配置了基于kube_pod_container_status_running指标的告警。3月3日部署采集配置后指标正常运行一天,3月6日该指标突然消失。已尝试重启Pod、将scrape_timeout从默认10s调整至40s,均未解决问题。当前Pod运行无报错,Prometheus Pod日志也无错误信息,且相同配置在另一环境运行正常。

现有Prometheus采集配置

- job_name: kubernetes-service-endpoints
  metric_relabel_configs:
    - source_labels: [__name__]
      regex: kube_pod_container_status_running
      action: keep
    - source_labels: [ pod ]
      target_label: kubernetes_pod_name
      action: replace
  honor_timestamps: true
  scrape_interval: 1m
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  kubernetes_sd_configs:
    - role: endpoints
  relabel_configs:
    - source_labels: [ __meta_kubernetes_service_annotation_prometheus_io_scrape ]
      separator: ;
      regex: "true"
      replacement: $1
      action: keep
    - source_labels: [ __meta_kubernetes_service_annotation_prometheus_io_scheme ]
      separator: ;
      regex: (https?)
      target_label: __scheme__
      action: replace
    - source_labels: [ __meta_kubernetes_service_annotation_prometheus_io_path ]
      separator: ;
      regex: (.+)
      target_label: __metrics_path__
      action: replace
    - source_labels: [ __address__, __meta_kubernetes_service_annotation_prometheus_io_port ]
      separator: ;
      regex: ([^:]+)(?::\d+)?;(\d+)
      target_label: __address__
      action: replace
    - separator: ;
      regex: __meta_kubernetes_service_label_(.+)
      action: labelmap
    - source_labels: [ __meta_kubernetes_namespace ]
      separator: ;
      regex: (.*)
      target_label: kubernetes_namespace
      action: replace
    - source_labels: [ __meta_kubernetes_service_name ]
      separator: ;
      regex: (.*)
      target_label: kubernetes_name
      action: replace
    - source_labels: [ __meta_kubernetes_pod_node_name ]
      separator: ;
      regex: (.*)
      target_label: kubernetes_node
      action: replace
排查建议
  • 检查kube-state-metrics状态:kube_pod_container_status_running指标来自kube-state-metrics,先确认kube-state-metrics Pod是否正常运行、是否有重启记录,查看其日志是否有异常输出。
  • 验证服务发现结果:在Prometheus UI的「Service Discovery」页面找到kubernetes-service-endpoints job,查看是否包含kube-state-metrics的端点,确认标签__meta_kubernetes_service_annotation_prometheus_io_scrape是否为true。
  • 检查relabel规则生效情况:在Prometheus UI的「Targets」页面,查看kubernetes-service-endpoints job下的kube-state-metrics目标,检查标签是否正确映射,比如是否保留了pod标签(用于后续metric_relabel替换)。
  • 直接抓取kube-state-metrics端点:在Prometheus Pod内或集群内执行curl <kube-state-metrics-service-ip>:8080/metrics | grep kube_pod_container_status_running,确认指标是否存在于原始metrics输出中。
  • 检查资源权限:确认Prometheus ServiceAccount是否有权限访问kube-state-metrics的端点,以及是否有权限获取Pod、Service等资源的元数据(排查RBAC规则是否在3月6日前后被修改)。
  • 查看集群事件:查询3月6日前后的Kubernetes事件,排查是否有kube-state-metrics相关的调度问题、网络策略变更、Service/Endpoint对象修改等情况。
  • 对比环境差异:找出当前环境与正常环境的不同点,比如kube-state-metrics版本、Prometheus版本、Kubernetes版本、网络插件配置、RBAC规则等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:07:07