温馨提示×

linux k8s怎么监控

小樊
37
2026-10-27 21:21:39
栏目: 智能运维

在 Linux 上监控 Kubernetes(K8s) 通常分为 集群级监控、节点级监控、应用/Pod 级监控、日志监控 几个层面。下面给你一个系统性的方案,从“最常用”到“进阶”讲清楚。


一、最常用方案(官方 & 社区标准)

✅ Prometheus + Grafana(强烈推荐)

这是 K8s 监控的事实标准。

监控内容

  • 节点 CPU / 内存 / 磁盘 / 网络
  • Pod / Container 资源使用
  • K8s 组件(kube-apiserver、etcd、scheduler)
  • 自定义业务指标

核心组件

组件 作用
Prometheus 指标采集 & 存储
node-exporter 节点指标
kube-state-metrics K8s 对象状态
Grafana 可视化
Alertmanager 告警

快速部署(Helm)

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

二、节点级监控(Linux 层面)

即使有 K8s,节点本身也要监控。

1️⃣ 基础命令(排查用)

top
htop
df -h
free -m
iostat -x 1
netstat -tunlp

2️⃣ node-exporter(Prometheus 用)

采集:

  • CPU
  • 内存
  • 磁盘 IO
  • 网络

三、K8s 原生监控方式

1️⃣ kubectl 自带

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 日志 ≠ 指标

常用方案

  • EFK:Elasticsearch + Fluentd + Kibana
  • Loki + Grafana(更轻量)

查看日志

kubectl logs -f pod-name
kubectl logs -f pod-name -c container-name

五、K8s 组件监控

重点看:

  • etcd 延迟
  • apiserver 请求数 / 错误率
  • 调度失败
  • 网络插件(Calico / Flannel)

Prometheus 已自带相关 exporter。


六、告警(不能只监控不告警)

Alertmanager 示例

  • 节点 NotReady
  • Pod 频繁重启
  • CPU > 90%
  • 磁盘 > 85%

七、如果你只是想“简单看看”

轻量方案

  • k9s(终端 UI)
k9s
  • Lens(桌面客户端)
  • Dashboard(官方 Web UI)

八、推荐组合(总结)

✅ 生产环境

Prometheus + Grafana + Alertmanager + Loki

✅ 开发/测试

kubectl top + k9s + Dashboard

如果你愿意,可以告诉我:

  • 是 物理机 / 云 / 自建 K8s
  • 规模(几节点 / 几百节点)
  • 是否已有监控

我可以给你一套 具体可落地的监控架构图 + YAML。

0 踩