之前在研究helm 的时候研究过k8s的一个weave-scope的一个可视化界面监控平台,下面研究下基于prometheus+Grafana 的监控方案的搭建。
weave-scope 我感觉还是挺好的,可以看到集群的相关信息,也可以看到pods 的相关信息并且查看pods 对应的container 容器以及今日容器执行一些操作。也可以查看controller、service 等信息。
1. 简介
1. 监控指标
主要监控CPU信息、以及pod 相关信息
2. 监控平台
(1) prometheus
一个开源的监控、报警,以http 协议周期性抓取被监控组件数据的平台
(2) Grafana
开源的数据分析和可视化功能。支持多种数据源。
(3) 其过程可以理解为下图
2. 搭建环境
相关配置文件参考https://github.com/redhatxl/k8s-prometheus-grafana 可能有区别的是node-exporter.yaml, 版本不匹配和缺少selector 相关
1. 部署prometheus
(1) 相关配置文件
node-exporter.yaml
--- apiVersion: apps/v1 kind: DaemonSet metadata: name: node-exporter namespace: kube-system labels: k8s-app: node-exporter spec: selector: matchLabels: k8s-app: node-exporter template: metadata: labels: k8s-app: node-exporter spec: containers: - image: prom/node-exporter name: node-exporter ports: - containerPort: 9100 protocol: TCP name: http --- apiVersion: v1 kind: Service metadata: labels: k8s-app: node-exporter name: node-exporter namespace: kube-system spec: ports: - name: http port: 9100 nodePort: 31672 protocol: TCP type: NodePort selector: k8s-app: node-exporter