我目前正在做一个使用Prometheus Server(不是Prometheus Operator)的项目。我们希望引入一种无需重新部署即可修改PrometheusRules的方法。
我对容器和Kubernetes完全陌生,有点超出我的理解,所以我希望有人能告诉我,如果我浪费我的时间试图使这个工作。
到目前为止我想到的是:
- 将PrometheusRules存储在configmap中
- 将规则的configmap应用到Prometheus Server配置。
- 为Prometheus Server创建一个可以修改此configMap的sidecar。
- sidecar将有一个公开的API,因此用户将拥有规则的CRUD功能。
- 当成功修改规则时,sidecar将触发Prometheus Server上的reload端点,使其重新加载其配置文件,而无需重新启动容器。
您最初的用例似乎是有效的,尽管我想说有更好的方法来实现它。
对于第1,2点,我建议您使用Prometheus Helm Chart以方便使用,更好的配置管理和部署。这将把Prometheus配置作为一个单独的单元来跟踪,而不是单独维护规则文件。
对于第3,4点:-对活动配置进行直接的未跟踪更改似乎不安全或不可靠。使用上面提到的helm图,我建议您在部署到集群之前进行更改(使用像Git这样的VCS来跟踪更改)
最好的情况:-同时设置CI/CD管道以立即部署更改。
使用上面提到的reload API来重新加载新发布的配置。
了解更多关于Helm的信息