Prometheus问题:我在Helm上使用prometheus,我想在同一个位置/etc/config/alrtingRules上挂载几个.yml文件--在git中,这些文件作为不同的文件保持分离是至关重要的。我尝试过将它们安装到自己的configMap上,并使用"extraConfigmapMounts“将它们全部放置在位置上,但我面临着困难。
我尝试过两种配置:
第一:
extraConfigmapMounts:
- name: recording-rules
mountPath: /etc/config/recording-rules.yml
subPath: recording-rules.yml
configMap: recording-rules
readOnly: true
- name: dummytest-alerting
mountPath: /etc/config/alertingRules/dummytest.yml
subPath: dummytest.yml
configMap: dummytest-alerting
readOnly: true
- name: app1-alerting
mountPath: /etc/config/alertingRules/app1.yml
subPath: app1.yml
configMap: app1-alerting
readOnly: true
- name: app2-alerting
mountPath: /etc/config/alertingRules/app2.yml
subPath: app2.yml
configMap: app2-alerting
readOnly: true此舵机成功,但随后prometheus-server无法加载此错误:
ts=2022-06-13T08:25:35.322Z caller=manager.go:968 level=error component=“规则管理器”加载组“msg=”加载组失败“err=”/etc/config/msg=/dumytest.yml: read /etc/config/alertingRules/dumytest.yml:是一个目录
第二:
extraConfigmapMounts:
- name: recording-rules
mountPath: /etc/config/
subPath: recording-rules.yml
configMap: recording-rules
readOnly: true
- name: dummytest-alerting
mountPath: /etc/config/alertingRules/
subPath: dummytest.yml
configMap: dummytest-alerting
readOnly: true
- name: app1-alerting
mountPath: /etc/config/alertingRules/
subPath: app1.yml
configMap: app1-alerting
readOnly: true
- name: app2-alerting
mountPath: /etc/config/alertingRules/
subPath: app2.yml
configMap: app2-alerting
readOnly: true对于此配置,Helm无法提供此错误:
错误:升级失败:创建修补程序失败:[mapmountPath:/etc/config名称:server-recording-rules readOnly:true rues.yml mapmountPath:/etc/config名称:config-音量mapmountPath:/ subPath: mapmountPath:/etc/config/警报器rules名称:server-app2-app-2-alerting:true子表:app2.yml mapmountPath:/etc/config/server:server-app1-警报注册:/subPath:1.ymlmapmountules:/etc/config/警报器rules create :server-测试-alerting readOnly:true subPath:dummytest.yml]与$setElementOrder列表不匹配:[mapmountPath:/etc/config /$setElementOrder/$setElementOrder:/etc/config/$setElementOrder/$setElementOrder/
对于如何将多个.yml文件安装到prometheus服务器的/etc/config中,有什么建议吗?
发布于 2022-06-13 14:42:44
因此,我找到的解决方案是:创建一个名为“警报-规则”的空configMap。每个微服务都有自己的yaml文件,只有“数据”字段。例如:
data:
app1.yaml: |
groups:
...
...
...
...
...我使用"kubectl修补程序“命令将各种警报yamls装入警报规则,例如:
在prometheus值中,我添加如下:
server:
extraConfigmapMounts:
- name: recording-rules
mountPath: /etc/config/recordingRules
configMap: recording-rules
readOnly: true
- name: alerting-rules
mountPath: /etc/config/alertingRules
configMap: alerting-rules
readOnly: true再往下说,在我下面加一句:
serverFiles:
prometheus.yml:
rule_files:
- /etc/config/recordingRules/recording-rules.yaml
- /etc/config/alertingRules/dummytest.yaml
- /etc/config/alertingRules/app1.yaml
- /etc/config/alertingRules/app2.yaml这将所有警报加载到prometheus中,从而允许我们在每个微服务yaml中管理警报。
https://stackoverflow.com/questions/72599877
复制相似问题