温馨提示×

K8S集群在Debian上的监控策略

小樊
44
2025-09-19 16:05:38
栏目: 智能运维

1. 基础命令行监控(kubectl)
kubectl 是Kubernetes原生命令行工具,无需额外安装,适合快速查看集群基础状态。常用命令包括:

  • kubectl get nodes:查看集群节点状态(Ready/NotReady);
  • kubectl get pods --all-namespaces:查看所有命名空间的Pod状态(Running/Pending/CrashLoopBackOff等);
  • kubectl get deployments --all-namespaces:查看Deployment的副本数及更新状态;
  • kubectl top nodes/pods:查看节点和Pod的CPU、内存使用情况(需提前安装Metrics Server)。
    这些命令能满足日常快速巡检需求,但缺乏可视化与长期存储。

2. 可视化监控组合(Prometheus + Grafana)
这是Debian上K8s集群的主流监控方案,适合中大型集群。

  • Prometheus:开源时间序列数据库,负责采集、存储集群指标。通过部署Prometheus Operator(helm install prometheus prometheus-community/prometheus)可简化安装,自动配置节点、Pod的指标抓取任务;
  • Grafana:开源可视化工具,用于展示Prometheus中的指标。需添加Prometheus为数据源(访问http://<grafana-ip>:3000,配置URL为http://<prometheus-service-ip>:9090),并导入官方K8s仪表板(如Kubernetes Cluster Monitoring、Node Exporter Full等);
  • 指标采集增强:需部署node-exporter(收集节点级CPU、内存、磁盘指标,kubectl apply -f https://raw.githubusercontent.com/prometheus/node_exporter/master/deploy/daemonset.yaml)、kube-state-metrics(收集Deployment、Pod等资源状态指标,kubectl apply -f https://github.com/kubernetes-sigs/kube-state-metrics/releases/latest/download/components.yaml),确保Prometheus能获取全面的集群指标。

3. 容器级监控(cAdvisor)
cAdvisor是K8s内置的容器资源监控工具,默认集成在kubelet中,无需额外部署。它能采集容器的CPU、内存、网络、磁盘使用情况,通过kubelet的API暴露(默认端口8080),可通过kubectl proxy访问(http://<node-ip>:8080/api/v1/nodes/<node-name>/proxy/metrics)。适合快速查看单个容器的资源消耗,但无长期存储与告警功能。

4. 终端管理工具(K9s/Kubebox)

  • K9s:终端全屏管理工具,适合习惯命令行的运维人员。安装后(curl -LO "https://github.com/derailed/k9s/releases/latest/download/k9s_$(uname -s)_$(uname -m).tar.gz"并解压到/usr/local/bin),通过k9s login登录集群,可实时查看节点、Pod、Deployment的状态,支持快捷键操作(如d删除Pod、e查看日志);
  • Kubebox:基于Web的终端控制台,提供类似K9s的功能,但支持多集群管理。通过kubectl apply -f https://raw.githubusercontent.com/coreos/kubebox/master/deploy/kubernetes/kubebox.yaml部署,访问Service即可使用。

5. 第三方监控工具(可选)
若需要更专业的监控能力,可选择第三方工具:

  • ELK Stack(Elasticsearch+Logstash+Kibana):用于日志收集、分析与可视化,需部署Filebeat采集节点与容器日志;
  • Datadog/New Relic:商业监控工具,提供全栈监控(应用、基础设施、日志),支持K8s原生集成,适合企业级场景。

0