两大grafana实用插件快速监控kubernetes
· 阅读需 7 分钟
监控k8s的主流方案是prometheus+grafana两大套件,为了快速部署并监控k8s,目前有两款主流grafana插件提供给了我们方案
环境说明
本文环境是二进制部署的k8s集群,prometheus和grafana通过yaml部署(非operator)
# kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
# kubectl get pods -n kube-system -l k8s-app=prometheus
NAME READY STATUS RESTARTS AGE
prometheus-0 2/2 Running 0 1m
# kubectl get pods -n kube-system -l app=grafana
NAME READY STATUS RESTARTS AGE
grafana-0 1/1 Running 0 1m
grafana-kubernetes-app插件
插件介绍
Grafana Kubernetes App可监控Kubernetes集群的性能。它包括4个仪表板,即集群,节点,Pod/容器和部署。它允许自动部署所需的Prometheus导出器,并使用默认的scrape配置与您的集群内Prometheus部署一起使用。收集的指标是高级集群和节点统计信息,以及较低级别的pod和容器统计信息。使用高级指标进行警报,使用低级指标进行故障排除。
要求
目前仅支持Prometheus
为了自动部署exporter,则需要Kubernetes 1.6或更高版本。
Grafana 5.0.0+
特征
- 该应用程序使用
Kubernetes标签来过滤Pod指标。Kubernetes集群往往有很多Pod和很多Pod指标。Pod / Container仪表板利用了pod标签,因此可以轻松找到相关的pod。 - 轻松安装
exporter,从Grafana一键式部署,或使用kubectl手动部署 Heapster中不可用的群集级别指标,例如CPU容量与CPU使用率。
集群指标
- Pod容量/用途
- 内存容量/使用率
- CPU容量/使用率
- 磁盘容量/使用率
- 节点,容器和容器概述
节点指标
- 中央处理器
- 可用内存
- 每个CPU的负载
- 读取IOPS
- 写入IOPS
- 实用率
- 网络流量/秒
- 网络数据包/秒
- 网络错误/秒
Pod/容器指标
- 内存使用情况
- 网络流量
- CPU使用率
- 读取IOPS
- 写入IOPS
插件安装
进入pod或者将插件离线下载后上传到/var/lib/grafana/plugins目录
# kubectl get pods -n kube-system -l app=grafana
NAME READY STATUS RESTARTS AGE
grafana-0 1/1 Running 0 123m
# kubectl -n kube-system exec -it grafana-0 bash
bash-5.0$ grafana-cli plugins install grafana-kubernetes-app
installing grafana-kubernetes-app @ 1.0.1
from: https://grafana.com/api/plugins/grafana-kubernetes-app/versions/1.0.1/download
into: /var/lib/grafana/plugins
✔ Installed grafana-kubernetes-app successfully
Restart grafana after installing plugins . <service grafana-server restart>
提示需要重启服务,此处直接删除pod,让其重新拉起即可
# kubectl -n kube-system delete pods grafana-0
插件配置
重新访问grafana界面查看插件列表,找到kubernetes插件并启用

选择创建集群

配置项如下
- name:名称,自定义
- URL:
api-server的地址 - Auth:认证信息,勾选
TLS Client Auth和With CA Cert- TLS Auth Details
此处配置的是插件连接
k8s的认证信息,这里我们可以新建一个kubeconfig文件也可以沿用kubectl使用的kubeconfig文件,在kubeconfig文件中的内容使经过base64编码后的,在这里需要将这些内容解码,类似echo "key内容" | base64 -d- CA Cert 对应
kubeconfig中的certificate-authority-data - Client Cert 对应
kubeconfig中的client-certificate-data - Client Key 对应
kubeconfig中的client-key-data
- CA Cert 对应
- TLS Auth Details
此处配置的是插件连接
- Datasource:数据源,选 择之前配置好的
prometheus - 除上面内容外,还可以选择通过此插件自动在集群中注入
prometheus的配置及部署node_exporter,这里已经部署过了,就不再部署了

如上图所示,填写完后点击Save,然后等待一会儿查看是否成功

插件效果
按照上面的操作成功配置后,插件会自动在grafana中添加多个实用的dashboard,下图展示其中一个

devopsprodigy-kubegraf-app插件
插件介绍
DevOpsProdigy KubeGraf是一个非常优秀的Grafana Kubernetes