gpt4 book ai didi

kubernetes - 如何在稳定/prometheus图表values.yaml中包含来自另一个yaml文件的prometheus规则?

转载 作者:行者123 更新时间:2023-12-02 12:03:51 37 4
gpt4 key购买 nike

嗨,我是Kubernetes和Helm Chart的新手。在这里已经提出并回答了类似的问题(How to set prometheus rules in stable/prometheus chart values.yaml?)

但是我正在寻找一种在另一个文件中定义规则,然后将该文件包含在values.yaml中的方法,以便于维护(因为我有2000多行警报...)

特别是,这就是我的values.yaml中的内容:

serverFiles:
alerts:
groups:
- name: kubernetes-apps
rules:
- alert: KubePodCrashLooping
annotations:
message: Pod {{ $labels.namespace }}/{{ $labels.pod }} ({{ $labels.container
}}) is restarting {{ printf "%.2f" $value }} times / 5 minutes.
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepodcrashlooping
expr: rate(kube_pod_container_status_restarts_total{component="kube-state-metrics"}[15m])
* 60 * 5 > 0
for: 1h
labels:
severity: critical
...
<2000 more lines>
...
rules: {}
prometheus.yml:
rule_files:
- /etc/config/rules
- /etc/config/alerts

这就是我想在新的 values.yaml中实现的功能:
serverFiles:
alerts: {{ include from values-alerts.yaml }}
rules: {}
prometheus.yml:
rule_files:
- /etc/config/rules
- /etc/config/alerts

这是我想包含在 values-alerts.yaml中的 values.yaml文件:
alerts:
groups:
- name: kubernetes-apps
rules:
- alert: KubePodCrashLooping
annotations:
message: Pod {{ $labels.namespace }}/{{ $labels.pod }} ({{ $labels.container
}}) is restarting {{ printf "%.2f" $value }} times / 5 minutes.
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepodcrashlooping
expr: rate(kube_pod_container_status_restarts_total{component="kube-state-metrics"}[15m])
* 60 * 5 > 0
for: 1h
labels:
severity: critical
...
<2000 more lines>
...

请告知这是否可行,或者是否有其他更好的方法。

谢谢,

最佳答案

我的理解是,您想复制上一个代码段中概述的代码,并且不想在代码段本身中添加默认值,对吗?

如果是这种情况,那么您不应该使用values.yamlvalues.yaml文件应包含模板的键/值对之类的默认值。

但是,您可以按照helm guide中的概述将templates包括在templates中(在###之后的注释):

### Define a template (this can be a seperate file)
{{- define "mychart.labels" }}
labels:
generator: helm
date: {{ now | htmlDate }}
{{- end }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
{{- template "mychart.labels" }} ### Include the template

产量:
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: running-panda-configmap
labels:
generator: helm
date: 2016-11-02

因此,您可以使用所需的 including将文件 values-alert替换为 values.yaml中的 include,而不用 templates/替换标签中的 {{ template }}

不要忘记缩进,并且helm template是您的 friend !

关于kubernetes - 如何在稳定/prometheus图表values.yaml中包含来自另一个yaml文件的prometheus规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56942637/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com