在 Linux 上监控 Kubernetes(K8s) 通常分为 集群级监控、节点级监控、应用/Pod 级监控、日志监控 几个层面。下面给你一个系统性的方案,从“最常用”到“进阶”讲清楚。
这是 K8s 监控的事实标准。
| 组件 | 作用 |
|---|---|
| Prometheus | 指标采集 & 存储 |
| node-exporter | 节点指标 |
| kube-state-metrics | K8s 对象状态 |
| Grafana | 可视化 |
| Alertmanager | 告警 |
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install kube-prometheus prometheus-community/kube-prometheus-stack -n monitoring --create-namespace
访问 Grafana:
kubectl port-forward svc/kube-prometheus-grafana -n monitoring 3000:80
即使有 K8s,节点本身也要监控。
top
htop
df -h
free -m
iostat -x 1
netstat -tunlp
采集:
kubectl top nodes
kubectl top pods
kubectl describe node <node>
kubectl get events --sort-by=.lastTimestamp
⚠️ 需要安装 metrics-server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
K8s 日志 ≠ 指标
kubectl logs -f pod-name
kubectl logs -f pod-name -c container-name
重点看:
Prometheus 已自带相关 exporter。
k9s(终端 UI)k9s
Lens(桌面客户端)✅ 生产环境
Prometheus + Grafana + Alertmanager + Loki
✅ 开发/测试
kubectl top + k9s + Dashboard
如果你愿意,可以告诉我:
我可以给你一套 具体可落地的监控架构图 + YAML。