Linux环境下K8S监控资源的常用方法与工具
kubectl top:Kubernetes自带的轻量级命令,用于快速查看节点和Pod的资源使用情况(CPU、内存)。
kubectl top nodeskubectl top pods --all-namespaceskubectl基础命令:通过Kubernetes API获取集群资源的状态信息,适合日常运维快速检查。
kubectl get nodeskubectl get pods --all-namespaceskubectl get deployments --all-namespaceskubectl get events --all-namespacesMetrics Server是Kubernetes集群的核心监控组件,负责收集节点和Pod的CPU、内存使用数据,为kubectl top和其他监控工具提供数据源。
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml这是Linux环境下K8S最流行的监控组合,适用于生产级场景,支持全栈监控(节点、Pod、容器、集群组件)和自定义告警。
stable/prometheus或prometheus-community/kube-prometheus-stack),自动配置Kubernetes服务发现(无需手动维护Target列表)。scrape_configs配置自动发现Kubernetes节点、Pod、kube-state-metrics等服务,采集CPU、内存、磁盘、网络等指标。kubectl apply -f https://raw.githubusercontent.com/grafana/grafana/master/deploy/recommended/grafana.yamlhttp://prometheus-operated.monitoring.svc.cluster.local:9090)。cAdvisor:容器级别的资源监控工具,收集容器的CPU、内存、磁盘、网络使用数据。
kubectl top间接查看其数据,也可单独通过Prometheus采集(cAdvisor暴露的/metrics端点)。kube-state-metrics:监听Kubernetes API Server,生成集群资源对象的状态指标(如Pod的创建/删除次数、Deployment的副本数、Node的Ready状态)。
kube-state-metrics)或手动部署(需创建DaemonSet或Deployment)。Node Exporter:收集节点级别的硬件和操作系统指标(如CPU使用率、内存使用量、磁盘IO、网络流量、文件系统空间)。
node-exporter.<namespace>.svc.cluster.local:9100)。DeepSeek:专为K8s设计的深度监控与诊断工具,支持实时监控(资源使用、容器运行状态)、异常预警(基于机器学习的资源瓶颈预测)、根源分析(定位Pod OOM、CPU飙升的原因)。
helm repo add deepseek https://charts.deepseek.com),创建命名空间并安装(helm install deepseek deepseek/deepseek --namespace deepseek),配置预警规则(如Pod CPU使用率超过80%触发告警)。ELK Stack(Elasticsearch+Logstash+Kibana):主要用于日志收集、搜索与可视化,补充Prometheus的“指标监控”,实现“日志+指标”的联合分析(如通过日志定位Pod异常的原因,结合指标判断异常趋势)。