Kubernetes监控方案:像看冰箱温度一样盯住你的容器集群

家里装了智能冰箱,能实时看到冷藏室几度、冷冻室几度,门开了没关紧还会发提醒——运维ref="/tag/2020/" style="color:#643D3D;font-weight:bold;">Kubernetes集群,也该有这种‘生活级’的掌控感。

别等报警才手忙脚乱

小王上周部署了个新服务,跑着跑着页面开始卡顿。查日志发现Pod频繁重启,再翻节点资源,才发现某台服务器内存被另一个测试环境悄悄占满。其实早半小时看一眼CPU使用曲线,就能提前挪走那个‘吃内存大户’,根本不用半夜爬起来救火。

三件套就够日常用

不需要一上来就上Prometheus+Grafana+Alertmanager+ELK八件套。普通中小团队,从这三样起步最顺手:

1. kubectl top——就像手机自带的电池用量统计
随手敲两行命令,立马知道哪个Pod在狂吃CPU:

kubectl top pods --all-namespaces
kubectl top nodes

2. Prometheus + Node Exporter + cAdvisor——升级版‘冰箱显示屏’
Node Exporter采集主机指标(磁盘、内存、网络),cAdvisor专盯容器(每个Pod的实时CPU、内存、网络IO),Prometheus把它们攒起来、画成图。装好后打开Grafana,选个现成的K8s仪表盘,集群健康状况一目了然。

3. 简单告警不靠复杂规则
比如想让系统在某个Pod内存持续超90%时微信通知你,用Prometheus的Alertmanager配一条规则就行:

groups:
- name: example
rules:
- alert: PodMemoryHigh
expr: (container_memory_usage_bytes{container!=""} / container_spec_memory_limit_bytes{container!=""}) > 0.9
for: 5m
labels:
severity: warning

别忽视‘人眼友好’的小细节

监控数据堆得再多,不如一眼看出问题。建议在Grafana首页放三个核心视图:节点CPU热力图(颜色越红越忙)、Pod重启计数排行榜、最近1小时HTTP 5xx错误趋势。这些不是大厂专属,用开源模板导入,半小时就能搭好。

监控不是为了填满屏幕,而是让系统状态像家里的水表、电表一样——平时安静待着,出事时第一个拉住你袖子说:‘这儿不对劲。’