大家好! 今天,我们继续分享专门为
基于Kubernetes的基础设施平台课程的学生翻译的材料。 好好阅读。

引言

一段时间以来,我一直在尝试创建用于管理Kubernetes的Grafana仪表板。 作为多个Kubernetes集群的所有者和管理员,我希望获得一些指标的直观表示。 首先,我需要用于Kubernetes控制平面和节点组件的普通Grafana仪表板:
kube-api,kube-scheduler,kube-controller-manager以及kubelet和kube-proxy 。 其次,我想将生成的面板发布到GitHub上,以便其他人可以留下建议和错误报告(问题),发送更改请求(拉请求),更新面板(git pull)并帮助我进行处理。
发布Grafana仪表板
Grafana面板现在大部分发布在
grafana.com/dashboards上 。 要获取所需的面板,您需要在页面上找到它,复制标识符并将其导入到本地Grafana实例中。 尽管导入仪表盘相对简单,但是经验表明,大多数用户发现使用它们很不方便。 这有几个原因。
首先,人们使用不同的标签选择器来指示Prometheus中的监视目标。 其次,在新版本的Prometheus导出器和用于访问度量的应用程序中,度量名称不断变化和删除。 第三,要找到真正高质量的仪表板非常困难-您永远都不知道导入后最终会得到什么。 选择面板后,您必须浏览所有图形并编辑度量以及标签的选择器-这是大量的手动工作。
监视Mixins项目
我找到了一个非常酷的项目,名为
Monitoring Mixins。 实际上,这是一种旨在克服所有面板疼痛问题的生态系统。 这个想法来自Frederic Branczyk,是他撰写了
原始设计文档 ,我强烈建议您阅读。 此外,他想出了一种更新仪表板并将其从各种GitHub存储库中提取出来的真正机制。 这种机制与
go get
非常相似,我非常喜欢它。
在这里,您可以阅读使用此机制的
jsonnet-bundler软件包管理器的简要说明。 非常感
谢弗雷德里克的有益发展!
Kubernetes Grafana Mixin软件包
如果您阅读这个地方,可以休息一下,欣赏美丽的图画。
API服务器
Kubernetes API服务器仪表板财务经理
Kubernetes控制器管理器仪表板策划人
Kubernetes Scheduler仪表板Kublet(节点代理)
Kubernetes Cublet仪表板
Kubernetes Cublet仪表板Kube代理
Kube代理仪表板使用Kubernetes Grafana Mixin
首先,您需要安装
jsonnet
和
jsonnet-bundler
。
杰森
如果使用的是macOS,则可以使用
brew install jsonnet
。 否则,最好自己编译此组件。
git clone https:
Jsonnet捆绑器
go get -u github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb
导入面板
为项目创建一个新目录,并使用
cd
输入该目录。
安装
mixin :
jb init jb install https:
现在创建一个新的
config.libsonnet
文件。
local kubedashboards = import 'kubernetes-grafana-mixin/mixin.libsonnet'; kubedashboards { _config+:: { kubeletSelector: 'job="kubernetes-nodes2"', kubeSchedulerSelector: 'job="kube-scheduler2"', kubeControllerManagerSelector: 'job="kube-controller-manager2"', kubeApiserverSelector: 'job="kube-apiserver2"', kubeProxySelector: 'job="kube-proxy2"', }, }
之后,将导入信息面板,并且作业选择器将被覆盖。
请更正Prometheus标签选择器以适合您的环境。
现在创建
dashboards
目录。 最后,运行
jsonnet
来编译
config.libsonnet
:
jsonnet -J vendor -m dashboards -e '(import "config.libsonnet").grafanaDashboards'
您将看到以下列表:
dashboards/kube-apiserver.json dashboards/kube-controller-manager.json dashboards/kube-proxy.json dashboards/kube-scheduler.json dashboards/kubelet.json
结果
显示仪表板目录的内容。
ls -l dashboards
-rw-r--r-- 1 povilasv povilasv 35746 Apr 26 08:29 kube-apiserver.json -rw-r--r-- 1 povilasv povilasv 34790 Apr 26 08:29 kube-controller-manager.json -rw-r--r-- 1 povilasv povilasv 62845 Apr 26 08:29 kubelet.json -rw-r--r-- 1 povilasv povilasv 27673 Apr 26 08:29 kube-proxy.json -rw-r--r-- 1 povilasv povilasv 25650 Apr 26 08:29 kube-scheduler.json
将仪表板添加到Grafana
我已经说过,我强烈建议您通过配置文件放置面板。 您可以
在Grafana文档中了解有关此操作
的更多信息 。
另一方面,没有什么可以阻止您打开
Grafana界面并通过它添加面板。
更新仪表板
随着时间的流逝,面板将发生变化。 要更新它们,以下命令就足够了:
jb update
今天就这些了。
希望您喜欢我的仪表板。 在另一篇文章中,我将讨论如何创建它们以及为什么要像这样创建它们,因此请务必订阅更新。 订阅者首先看到我的作品,甚至在发布之前。
我对您的反馈意见也非常感兴趣。 如果您使用我的面板,请评估它们对您有多有用,或者在实际工作情况下分享它们是否对您有帮助。 留下评论!
顺便说一句,如果您想感谢我的努力,可以查看我的公开愿望清单,然后购买例如一本好书。
我非常感谢高质量的开源项目。 kubernetes-grafana-mixin软件包可根据Apache 2
许可许可证获得。 如果您喜欢该项目,请在Github上查看!