kubernetes中用grafana展示节点与pod性能看板的核心是打通prometheus数据采集、cadvisor/kube-state-metrics指标暴露及grafana可视化,需确保组件部署正确、数据源配置准确、仪表盘导入得当。

在 Kubernetes 中用 Grafana 展示节点与 Pod 性能看板,核心是打通数据采集(Prometheus)、指标暴露(cAdvisor + kube-state-metrics)和可视化(Grafana)。只要组件部署正确、数据源配置准确、仪表盘导入得当,就能快速获得实时、可下钻的性能视图。
确保 Prometheus 正确采集节点与 Pod 指标
Prometheus 是 Grafana 的底层数据源,必须能抓取到两类关键指标:
-
节点维度:来自
node_exporter(CPU、内存、磁盘 I/O、网络流量)和cAdvisor(容器级资源使用,嵌入在 kubelet 中,默认监听/metrics/cadvisor); -
Pod/工作负载维度:来自
kube-state-metrics(Pod 状态、重启次数、调度信息)和cAdvisor(每个 Pod 容器的 CPU 使用率、内存 RSS/WorkingSet、网络收发字节数、文件系统用量)。
检查 Prometheus Targets 页面,确认以下 endpoint 状态为 UP:
- node-exporter 的 /metrics
- kubelet 的 /metrics/cadvisor(需开启 --enable-cadvisor-json-endpoints=true)
- kube-state-metrics 的 /metrics
配置 Grafana 数据源并验证查询
在 Grafana 中添加 Prometheus 类型数据源,地址填 Prometheus Service 地址(如 http://prometheus.default.svc:9090),保存后点击 “Save & test” 确认连通。
进入 Explore 模式,手动输入几个典型查询验证数据是否就绪:
-
100 * (1 - avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])))→ 节点 CPU 使用率 -
container_memory_working_set_bytes{container!="", pod!=""}→ 各 Pod 内存实际占用(WorkingSet) -
sum by(pod, namespace) (rate(container_network_receive_bytes_total{pod!=""}[5m]))→ Pod 入网流量速率
若能返回时间序列且有合理数值,说明数据链路已通。
导入或构建节点与 Pod 专用看板
推荐直接使用社区成熟看板,节省调试时间:
- 节点概览:导入 Node Exporter Full(ID: 1860),覆盖 CPU、内存、磁盘、网络、硬件温度等;
- 集群与 Pod 监控:导入 Kubernetes Cluster Monitoring (via Prometheus)(ID: 3119),含 Nodes、Pods、Namespaces、Workloads 多层视图;
- 单 Pod 下钻分析:使用 Kubernetes Pods Dashboard(ID: 12124),支持按命名空间/Pod 名筛选,并展示 CPU/Mem/Network/Restarts/Events。
导入时注意选择对应 Prometheus 数据源,并确认变量(如 $namespace、$pod)已正确定义。部分看板依赖 kube-state-metrics 的 label 映射,若 Pod 标签显示为空,检查其 metrics 是否包含 pod 和 namespace label。
增强实用性的小技巧
让看板不止“好看”,更能辅助排障:
- 添加告警链接:在面板右上角设置 “Links” → “Alert rules”,跳转到 Alertmanager 查看关联告警;
-
启用变量过滤:为
$node、$namespace、$pod添加 Query 变量(如label_values(node_cpu_seconds_total, instance)),实现动态筛选; -
设置默认时间范围:在看板 JSON 中修改
"time": {"from": "now-1h", "to": "now"},避免每次打开都看 6 小时历史; -
标记异常 Pod:在表格类面板中,用状态字段(如
kube_pod_status_phase)配置阈值着色,Running 显示绿色,Pending/Unknown 标红。










