如何用PromQL按时间统计单命名空间下各Deployment的运行Pod数
按Deployment维度统计并绘制Pod数时序图表的方案
针对同一命名空间下多个Deployment的Pod运行数时序统计需求,以下是几种可行的实现方式:
一、Prometheus + Grafana(生产环境推荐)
这是Kubernetes监控的标准组合,支持精准的维度过滤和可视化:
- 编写针对性的PromQL查询
要统计指定Deployment的运行Pod数,可通过Pod的归属关系或标签过滤:- 统计
bobDeployment的运行Pod数:sum(kube_pod_status_phase{namespace="bob", phase="Running"} * on(pod, namespace) group_left() kube_pod_owner{owner_kind="Deployment", owner_name="bob"}) - 统计
bob-workerDeployment的运行Pod数:sum(kube_pod_status_phase{namespace="bob", phase="Running"} * on(pod, namespace) group_left() kube_pod_owner{owner_kind="Deployment", owner_name="bob-worker"})
app=bob),也可以用更简洁的查询:sum(kube_pod_status_phase{namespace="bob", phase="Running", label_app="bob"}) - 统计
- Grafana可视化配置
- 添加Prometheus作为数据源
- 新建两个独立面板,分别填入上述两个查询
- 面板类型选择「折线图」,设置标题(如「Bob Deployment运行Pod数」)和时间范围,即可生成按时间变化的Pod数图表
二、kubectl + 脚本定时采集(临时/测试场景)
如果不需要长期监控,可通过脚本定时采集数据,再用工具生成图表:
- 编写采集脚本
保存为pod-monitor.sh:#!/bin/bash OUTPUT_FILE="pod_counts.csv" # 初始化CSV表头 echo "timestamp,bob_running_pods,bob-worker_running_pods" > $OUTPUT_FILE # 每分钟采集一次(可调整sleep时长) while true; do TIMESTAMP=$(date +%Y-%m-%dT%H:%M:%S) # 统计bob Deployment的Running状态Pod数(减去表头行) BOB_PODS=$(kubectl get pods -n bob -l app=bob --field-selector=status.phase=Running | wc -l) BOB_PODS=$((BOB_PODS - 1)) # 统计bob-worker Deployment的Running状态Pod数 BOB_WORKER_PODS=$(kubectl get pods -n bob -l app=bob-worker --field-selector=status.phase=Running | wc -l) BOB_WORKER_PODS=$((BOB_WORKER_PODS - 1)) # 写入CSV echo "$TIMESTAMP,$BOB_PODS,$BOB_WORKER_PODS" >> $OUTPUT_FILE sleep 60 done - 生成图表
- 执行
chmod +x pod-monitor.sh && ./pod-monitor.sh运行脚本,采集足够数据后停止 - 将生成的
pod_counts.csv导入Excel或用gnuplot等工具生成折线图
- 执行
三、基于kube-state-metrics的简化查询
如果你的集群已部署kube-state-metrics,可直接用Deployment的可用副本数指标(与实际运行Pod数高度一致):
bobDeployment的可用Pod数:kube_deployment_status_replicas_available{namespace="bob", deployment="bob"}bob-workerDeployment的可用Pod数:kube_deployment_status_replicas_available{namespace="bob", deployment="bob-worker"}
此指标更轻量,适合快速搭建监控面板。
内容的提问来源于stack exchange,提问作者Yonatan Huber
相关产品推荐
相关产品推荐

