首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prometheus K8s extraConfigmapMounts未能将多个文件加载到同一个目录

Prometheus K8s extraConfigmapMounts未能将多个文件加载到同一个目录
EN

Stack Overflow用户
提问于 2022-06-13 08:34:10
回答 1查看 212关注 0票数 0

Prometheus问题:我在Helm上使用prometheus,我想在同一个位置/etc/config/alrtingRules上挂载几个.yml文件--在git中,这些文件作为不同的文件保持分离是至关重要的。我尝试过将它们安装到自己的configMap上,并使用"extraConfigmapMounts“将它们全部放置在位置上,但我面临着困难。

我尝试过两种配置:

第一:

代码语言:javascript
复制
  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:是一个目录

第二:

代码语言:javascript
复制
  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中,有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-13 14:42:44

因此,我找到的解决方案是:创建一个名为“警报-规则”的空configMap。每个微服务都有自己的yaml文件,只有“数据”字段。例如:

代码语言:javascript
复制
data:
  app1.yaml: |
    groups:
    ...
    ...
    ...
    ...
    ...

我使用"kubectl修补程序“命令将各种警报yamls装入警报规则,例如:

  • kubectl修补程序configmap -n prometheus警报规则-补丁文件path/to/app1.yaml

在prometheus值中,我添加如下:

代码语言:javascript
复制
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

再往下说,在我下面加一句:

代码语言:javascript
复制
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中管理警报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72599877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档