k8s中的容器资源监视

Kubernetes容器资源监控实战指南:生产环境必备技能

作为每天管理Kubernetes集群的老司机,我发现资源监控就像给集群装了个"心电图仪"——能实时看到哪里在抽风,哪里在躺平。今天给大家分享一套生产级监控方案,都是我们团队踩坑总结出来的干货。


一、为什么要做资源监控?(说人话版)

想象一下:你的集群里有100个Pod在跑,突然业务量暴增,这时候:

  • 怎么知道哪些Pod在疯狂吃CPU?
  • 哪个节点内存要爆了?
  • 自动扩缩容为啥没生效?

这就是资源监控要解决的问题!它能帮你:
✅ 防止半夜被报警电话叫醒
✅ 省下真金白银(优化资源使用)
✅ 让老板觉得你运维水平很专业


二、生产环境四大监控神器

1. kubectl top - 快速把脉工具
# 看节点心跳(CPU/MEM)
kubectl top nodes

# 看Pod的心跳(按命名空间)
kubectl top pods -n production

👉 适合快速排查问题,但只能看实时数据(历史数据查不到)

2. Metrics Server - 集群体检仪
  • 自带的数据收集器
  • 让HPA/VPA自动扩缩容成为可能
  • 安装方法(没装的赶紧补课):
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
3. Prometheus + Grafana - 监控全家桶

监控架构图

  • Prometheus负责采集数据(支持k8s服务发现)
  • Grafana做可视化大屏
  • 推荐配置:
# 监控Pod内存的告警规则示例
- alert: PodMemoryUsageCritical
  expr: sum(container_memory_working_set_bytes{pod!="", container!=""}) by (pod, namespace) / (1024*1024) > 2048
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "Pod内存超标 ({{ $value }}MB)"
4. 商业方案选型
  • Datadog:功能全但贵
  • NewRelic:APM整合好
  • 阿里云ARMS:国内环境友好

三、必须监控的三大黄金指标

监控层级 关键指标 报警阈值建议
节点层 CPU使用率 > 80%持续5分钟 触发节点扩容
内存可用 < 10% 立即排查内存泄漏
Pod层 容器OOM次数 > 0 紧急调整内存limit
CPU Throttling时间占比 > 30% 优化CPU requests
应用层 HTTP 5xx错误率 > 1% 触发故障转移
请求延迟P99 > 2s 优化代码或扩容

四、生产环境避坑指南

坑1:监控数据把集群搞挂了
  • 解决方案:单独开监控专用节点
nodeSelector:
  role: monitoring
tolerations:
- key: "dedicated"
  operator: "Equal"
  value: "monitoring"
  effect: "NoSchedule"
坑2:多集群监控成睁眼瞎
  • 推荐方案:Thanos + Prometheus联邦
  • 配置示例:
# Thanos Sidecar配置
thanos:
  objectStorageConfig:
    key: objstore.yml
    name: thanos-objstore-secret
坑3:告警太多变成狼来了
  • 智能降噪方案:
  1. 按业务重要性分级(P0/P1/P2)
  2. 设置静默时间(如业务高峰期不报警)
  3. 告警合并(相同错误合并发送)

五、高阶玩家技巧

1. 资源预测式扩缩容
# 安装Keda实现基于队列长度的自动扩缩容
helm install keda kedacore/keda --namespace keda
2. 成本优化监控
  • 使用kube-cost分析资源开销
kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090
3. 安全监控
  • 监控可疑容器行为:
(container_cpu_usage_seconds_total{container!="POD"} > 100)
AND
(rate(container_network_receive_bytes_total[5m]) > 1048576)

六、我们的监控大盘长这样

Grafana监控大屏示例

主要包含:

  1. 全局资源水位图
  2. 关键业务Pod TOP10排行榜
  3. 跨AZ流量热力图
  4. 成本消耗趋势预测

七、写给新手的检查清单


最后说句大实话:再好的监控工具,不如养成看监控的好习惯。建议每天早会先看监控大盘,就像医生每天查房一样,集群健康了,你的KPI也就稳了!

posted on 2025-03-18 09:14  Leo-Yide  阅读(130)  评论(0)    收藏  举报