第 18 章 集群监控与可观测性
1、可观测性三个核心维度
- Metrics指标:CPU、内存这类数字数据,用来做告警、自动扩缩容。
- Logging日志:程序输出的文字报错,排查故障使用。
- Tracing链路追踪:追踪一次请求完整经过哪些服务,用来找性能慢的问题。
2、metrics‑server
轻量级组件,不保存历史数据,只保留近期资源快照。给kubectl top查看资源占用、HPA 水平自动扩缩容提供数据来源。
3、Prometheus 监控体系
Prometheus 采用拉取模式,主动去找各个组件拿监控数据。
- Node Exporter:部署在每台节点机器,采集服务器硬件指标(CPU、内存、磁盘)。
- Kube‑State‑Metrics:把 K8s 内部 Pod、Deployment 等资源状态转换成监控指标。
- Prometheus Operator:用 CRD 自定义资源管理 Prometheus,配置写 yaml 文件。
4、Prometheus 与 Grafana 分工
- Prometheus:负责收集、存储监控数据。
- Grafana:本身不存监控数据,负责把数据渲染成图表展示。
- 工作流程:Grafana 发送 PromQL 查询 → Prometheus 返回数据 → Grafana 画出图表。
Grafana 主要概念:
- 数据源:对接 Prometheus、Loki 等存储,统一获取数据。
- 仪表盘面板:放监控图表,可以手写查询语句,也能导入网上现成模板。
- 告警:设置指标阈值,异常把消息推送到钉钉、企业微信。
5、日志方案 Loki + Promtail
- Loki:日志存储服务,保存收集上来的日志。
- Promtail:部署在每个节点,采集本机 Pod 日志,上报给 Loki。
整体链路:Promtail采集日志 → Loki存储 → Grafana查看