K8S学习笔记|13-集群监控

Kubernetes

Posted by Claire on September 7, 2023

Weave Scope

Weave Scope是Docker和Kubernetes常见的可视化监控工具,提供自上而下的集群基础设施和应用的完整视图

kubectl apply –namespace kube-system -f xxx.yaml 即可

组件功能

会有 weave-scope-agent/weave-scope-app :

  • agent是常规的数据采集部分,负责采集每个节点上的数据
  • app是scope的应用部分,适用于将采集的数据进行WebUI展示
  • app默认是ClusterIP,可以自行改为NodePort形式

应用功能

1.展示应用各个组件的情况(Deployment\Service…) 2.展示总体拓扑结构,可以层层向下 3.展示实时资源和CPU\内存使用情况,支持Host\pod\container 4.支持在线操作,连接终端命令行,进行scaleup\日志查看等动作 5.支持关键字搜索和资源定位,比如内存大于100M

Heapster

Heapster K8S集群原生的监控方案

Heapster以Pod的形式运行,自动发现节点,从kubelet上获取监控数据,kubelet从节点上的cAdvisor收集数据

Heapster -> kubelet -> cAdvisor

可视化

针对监控数据的存储与查看,需要配备InfluxDB/Grafana这样的组合,通过Grafana可以查看Cluster的CPU、内存、网络和磁盘使用情况

Prometheus Operator

对于Node和Pod监控,通过WeaveScope和Heapster已经能够进行一个基础的监控,但是希望对K8S的组件,比如Apiserver,ControllerManager,Scheduler都进行监控,可以使用Prometheus Operator

可以监控:

  1. 集群的健康状态
  2. 整个集群资源的使用情况
  3. 各个组件的状态
  4. 节点资源使用情况
  5. Deployment运行状态
  6. Pod运行状态

Prometheus架构:

  1. prometheus server,从exporter拉取和存储监控数据,提供promQL
  2. exporter,负责采集目标对象的性能数据,并通过HTTP接口供server使用
  3. 可视化组件,与grafana集成,提供数据展示能力
  4. alertmanager,自定义监控告警规则,规则触发告警,支持多种通知形式

组成:

  1. Operator
  2. Prometheus Server
  3. Service
  4. ServiceMonitor
  5. AlertManager

安装PrometheusOperator\Prometheus\alertmanager\grafana