背景介绍
什么叫做 Operator 呢?他是 CoreOS 所主导的一项计划,目的在于使复杂的 Application 可以轻松的假设以及维护在 Kubernets 中,可以到官网查看详细说明What are Red Hat OpenShift Operators?
,在开始前先用图片大概说明一般的 Prometheus 及 Prometheus Operator 的不同之处。
一般的 Prometheus 三个角色分别是 Exporter,Prometheus 以及 Alertmanager,组件主要定义在 Prometheus 的 YAML 当中
-
Exporter: 必须把想要传送给 Prometheus 的资料给暴露出来。
-
Prometheus: 组件中会决定去哪些 Exporter 把资料给拉回来,假如事先定义的 alerting rules 被触发,就会把 event 传送给 Alertmanager
-
Alertmanager:接收到从 Prmetheus 来的 event,再根据定义的 notification 组件来决定要通知的方法。
上图为通过 Prometheus Operator 安装完的超简易示意图,通过 Opertaor 安装就跟原本的安装有些差异,但是在使用完后,我觉得管理上变得更简单干净,eg,比如如想要监控所有的 K8S Node 该如何达成(4)?
-
负责输出 Node Metric 的 Exporter 必须存在。
-
建立好连接到该 Exporter 的 k8s Service
-
需有一个 K8S CRD ServiceMonitor 透过 Label 对应到 K8S Service,该 CRD 会根据定义自动产生 scrape 组件,进而让 Prometheus 可以取到到 Metric 资料。
-
负责监控的 rule 组件则定义在 K8S ConfigMap 中
所以假如要监控其他的 K8S Application 就是把上面的 4 个东西都准备好,Prometheus 就可以开始收到资料额。
开始安装
必要条件
- Kubernetes Cluster:毕竟是 Prometheus Kubernets Operator,必须要有 k8s cluster 才能开始安装(以下我们将用 minikube,需要注意内存分到 8g,cpu 也尽量大一点,Prometheus 比较好资源)
|
|
Helm:helm 为 k8s 的安装管理套件,建议使用 k8s 的人,一定要使用它
|
|
分别部署
- kube-prometheus,全家桶。
- 分别安装 prometheus 和 grafana 我也不想选择第二种,但是我就一台普通的 PC,安装 kube-prometheus 直接给我报错 CPU 不够用了,我~~
https://blog.csdn.net/luzhangting/article/details/121019644
kube-prometheus-stack
可以被视为一个综合性的解决方案,一次性安装了多个组件,包括 Prometheus、Prometheus Operator、Alertmanager、Grafana、kube-state-metrics、prometheus-node-exporter 等等。
自定义配置(可选):如果需要更改配置值,可以创建一个新的 YAML 文件,例如 kube-prometheus-stack.yaml
,并参考官方参数定义(注 5),将要修改的值定义在其中。
安装命令如下:
|
|
验证安装:
在执行 Helm 命令完成后,当然要验证是否成功安装。
|
|
在浏览器中打开连接 http://localhost:8080(用户名和密码可以从 secret kube-prometheus-stack-grafana 获取),以下是 General / Kubernetes / Compute Resources / Cluster 仪表板。
|
|
了解 一下 pmm
Percona Monitoring and Management