Operator 项目修改Prometheus 配置项
在容器化编排工具 Kubernetes 集群中配置Prometheus 服务时,一般使用 kube-prometheus 这个项目进行部署。Kube-prometheus 的使用方式,在项目的说明文档中都有介绍,这里就不赘述了。
Kube-prometheus 项目中对其他资源对象的管理是通过 Prometheus-Operator 项目实例来实现的;所以在管理和更新 Prometheus 服务是需要通过 Operator 来实现。
我们在使用 Kube-prometheus 项目配置 Prometheus 监控后,难免会进行一些调整,增加一些自定义的配置,这时候我们就需要更深入了解 Kube-prometheus 项目是如何配置 Prometheus 服务,并给我们预设什么样的调整配置方式。
一、Prometheus 服务配置文件添加配置项
kube-prometheus 项目给我们提供了一份默认的 Prometheus 配置文件内容;在默认的环境中,这份默认配置已经很够用的了。
在项目维护过程中,我们难免会增加新的监控对象(Target);这是我们改如果修改 Prometheus 服务的配置文件,来实现目的呐?
1.1、修改Prometheus 服务配置文件对象(错误)
Prometheus 服务的配置文件由 prometheus-k8s 名称的 Secret 对象存储;一般情况下,只需要修改这个对象,既可以完成配置项修改的操作。但是这个对象无法修改,所以这个方式不可行。
1.2、修改Prometheus 服务的Statefulset 对象编辑文件(错误)
配置文件不能修改,那就新创建一个配置文件对象;让 Prometheus 服务引用新的配置文件对象;也可以实现更新配置信息的目的。
修改 prometheus-k8s 名称的 statefulset 对象,使其挂载的配置文件对象为新的配置文件。但是发现 statefulset 对象也是不能修改的;所以这个方式不可行。
1.3、官方提供的修改方式
Kube-prometheus 项目提供的修改 Prometheus 配置文件的方式是新编辑一个附加配置文件。
https://github.com/prometheus-operator/prometheus-operator/tree/master/example/additional-scrape-configs
其过程主要包括
- 编写一个附加配置文件(prometheus-additional.yaml),用于扩展 Prometheus 配置。
- 利用附加配置文件生产一个 Secret 配置对象(additional-scrape-configs.yaml)。
- 修改 Prometheus CRD 对象实例,添加附加配置项的配置信息(prometheus.yaml)。
- 其他关于角色、绑定和账号的配置一般可以忽略。