Linux下Kubernetes的监控策略有哪些
导读:Linux下Kubernetes监控策略 一 总体策略与方法 采用指标与日志双栈:指标用于容量、性能和 SLO 观测,日志用于故障排查与行为取证,二者互补。 组合黑盒与白盒:黑盒从外部探测可用性(如存活性探针、端到端拨测),白盒基于内部可...
Linux下Kubernetes监控策略
一 总体策略与方法
- 采用指标与日志双栈:指标用于容量、性能和 SLO 观测,日志用于故障排查与行为取证,二者互补。
- 组合黑盒与白盒:黑盒从外部探测可用性(如存活性探针、端到端拨测),白盒基于内部可观测性(如请求延迟、错误率、饱和度)。
- 方法论落地:基础设施用USE(Utilization、Saturation、Errors)快速定位瓶颈,服务用RED(Rate、Errors、Duration)贴近用户体验,二者结合覆盖全栈。
- 分层观测:覆盖控制平面(API Server、etcd、Scheduler、Controller Manager)、节点(kubelet、容器运行时、kube-proxy)、工作负载(Pod/容器)、网络与存储、应用业务指标。
二 关键组件与数据源
- cAdvisor:内置于kubelet,采集容器级CPU、内存、磁盘 I/O、网络等,是容器指标的权威来源。
- Metrics Server:实现Resource Metrics API,从 kubelet 聚合CPU/内存等,用于HPA/VPA与调度决策。
- kube-state-metrics:从 Kubernetes API 生成对象状态指标(如Pod 就绪数、副本数、Pending/Evicted等),回答“有多少/处于何状态”。
- Node Exporter:节点级硬件与 OS指标(CPU、内存、磁盘、网络),通常以DaemonSet部署。
- Prometheus:拉取/存储时序数据,提供PromQL查询与Alertmanager告警。
- Grafana:可视化与仪表盘,常用官方/社区K8s 仪表盘快速落地。
- 可选增强:Kubernetes Dashboard、K9s、Lens用于日常运维可视化;Weave Scope、Calico/Cilium辅助网络拓扑与策略可视化。
三 采集与告警架构
- 以Prometheus Operator / kube-prometheus-stack为核心,借助ServiceMonitor/ PodMonitor与Kubernetes SD自动发现抓取目标,减少手工维护。
- 典型抓取链路:
- 节点与系统:Node Exporter(DaemonSet)→ Prometheus;
- 容器:kubelet / cAdvisor → Prometheus;
- 对象状态:kube-state-metrics → Prometheus;
- 控制平面与核心组件:通过Endpoint/Service暴露指标供 Prometheus 抓取。
- 告警与通知:Prometheus Rule → Alertmanager → 邮件/企业微信/Slack/Webhook,按SLO/错误预算设置分级与抑制。
- 可视化:Grafana 以Prometheus为数据源,导入K8s 集群/节点/Pod等仪表盘,构建统一观测门户。
四 核心指标与告警示例
| 层级/对象 | 关键指标 | 策略/方法 | 典型告警示例 |
|---|---|---|---|
| 节点 | CPU/内存/磁盘/网络利用率与I/O 等待 | USE | 节点 CPU > 80% 持续 5 分钟;磁盘使用率 > 85% |
| 容器/Pod | CPU/内存使用率、重启次数、OOMKilled | USE + 状态 | 容器重启次数 > 3 次/小时;OOMKilled 发生 |
| 工作负载 | Deployment 就绪副本数/更新状态、Pod Pending/Evicted | kube-state-metrics | 就绪副本 < 期望副本数;持续 Pending > 10m |
| 服务/应用 | 请求率、错误率、P95/P99 延迟(RED) | 白盒埋点或 Ingress/Service 指标 | 5xx 错误率 > 1%;P95 延迟 > 1s |
| 控制平面 | API Server 请求延迟/QPS/错误码、etcd 延迟/健康 | 组件指标 | API 错误率 > 0.5%;etcd 领导选举异常 |
| 网络 | Pod 网络丢包/重传、DNS 解析失败 | CNI/Service/Endpoint 指标 | DNS 解析失败率 > 1%;跨节点丢包率高 |
| 存储 | PVC 容量使用率、挂载/IO 错误 | 卷/节点指标 | PVC 使用率 > 90%;Volume 挂载失败 |
| 说明:阈值需结合容量规划与 SLO校准,避免“告警疲劳”。 |
五 部署与运维要点
- 快速落地:在 CentOS/Ubuntu 上优先采用 kube-prometheus-stack Helm 一键部署(含 Prometheus、Alertmanager、Grafana、Node Exporter、ServiceMonitor 等),导入常用仪表盘(如 1860、4076)。
- 稳定性:为 Prometheus 与 Alertmanager 配置持久化存储与资源请求/限制,避免 OOM 与数据丢失。
- 安全:组件间启用RBAC与TLS,对外暴露最小化;Grafana 使用强口令/SSO。
- 可观测性增强:结合日志(EFK/ELK)与分布式追踪(Jaeger/Zipkin),与指标/告警联动定位根因。
- 持续校准:定期复盘告警规则与仪表盘,淘汰无效告警,补充业务关键指标。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下Kubernetes的监控策略有哪些
本文地址: https://pptw.com/jishu/775439.html
