为什么说 Prometheus + Grafana 是 K8s 监控的“事实标准”?它的核心架构是怎样的?
2026-08-11 01:06:54
# 监控
在 Kubernetes 生态里,监控方案一度“百花齐放”,但时至今日,Prometheus + Grafana 几乎成了社区公认的“事实标准”。根据 CNCF(云原生计算基金会)的年度调查,超过 80% 的生产集群都在使用这一组合。
为什么它能成为事实标准
它的核心优势可以归纳为三点:
- 基于 Pull 的指标采集模型:Prometheus 主动从被监控目标拉取(scrape)指标,而不是让目标推送。这种“中心拉取”模式让采集端更容易做服务发现、更可控,也避免了客户端埋点带来的雪崩风险。
- 强大的多维数据模型:所有指标都带有 Labels(键值对),可以基于 Label 灵活地聚合、切片、下钻。例如
rate(http_requests_total{namespace="prod"}[5m])就能按命名空间统计 QPS。 - 完善的生态:从 Exporter 到 Operator,社区轮子极其丰富,几乎任何组件都有现成的采集方案。
一个标准的 K8s 监控栈包含什么
一个“全家桶”式的监控栈通常由以下组件构成:
- Prometheus:负责指标的抓取(scrape)和时序存储(TSDB)。
- Grafana:负责数据可视化,把 PromQL 查询结果绘制成丰富的仪表盘。
- Alertmanager:负责告警的路由、分组、去重与静默,避免告警风暴。
- kube-state-metrics (KSM):把 Kubernetes 的资源对象(如 Deployment、Pod、Node)的状态转换成指标,例如
kube_pod_status_ready。 - cAdvisor:集成在 kubelet 中,负责监控容器的实时资源使用情况(CPU、内存、文件系统、网络等)。
正是这“五件套”的分工协作,构成了今天绝大多数 K8s 集群监控的底座。