首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在kube stack值之外添加PodMonitor或ServiceMonitor

在kube stack值之外添加PodMonitor或ServiceMonitor
EN

Stack Overflow用户
提问于 2021-06-22 14:50:55
回答 2查看 5.4K关注 0票数 8

使用库贝-普罗米修斯-堆栈头盔图,35.2.0版。到目前为止,我通过helm自定义值添加了我的自定义PrometheusRulesPodMonitorServiceMonitor

代码语言:javascript
复制
helm install my-kubpromstack prometheus-community/kube-prometheus-stack -n monitoring \
  -f my-AlertRules.yaml \
  -f my-PodMonitor.yaml

或者在PrometheusRulesPodMonitor发生更改时,我使用helm upgrade。自定义值是基于库贝-普罗米修斯-堆栈/价值定义的。其中,我在单独的YAML文件中定义了prometheus.additionalPodMonitorsadditionalPrometheusRulesMap

代码语言:javascript
复制
helm upgrade my-kubpromstack -n monitoring \
  --reuse-values \
  -f my-AlertRules.yaml \
  -f my-PodMonitor.yaml

问题:如何使Prometheus服务器从kube-prometheus-stack中了解在舵机值之外创建的规则、podmonitor、servicemonitor?

例如,下面的PodMonitor定义不是由Prometheus获取的(即没有出现在Prometheus中的目标中)。

代码语言:javascript
复制
kubectl apply -f - << EOF
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: cluster-operator-metrics
  labels:
    app: strimzi
spec:
  selector:
    matchLabels:
      strimzi.io/kind: cluster-operator
  namespaceSelector:
    matchNames:
      - my-strimzi
  podMetricsEndpoints:
  - path: /metrics
    port: http
EOF

要监视的吊舱有一个标签strimzi.io/kind: cluster-operator,位于my-strimzi命名空间中。我希望上面的podmonitor能被普罗米修斯自动识别。因为Kube-Prometheus堆栈/ Because .says中的默认podMonitorSelector:{}有一条注释:

代码语言:javascript
复制
    ## PodMonitors to be selected for target discovery.
    ## If {}, select all PodMonitors

编辑:看起来这个问题对很多人很有用。最简单的解决办法是周星驰在下面提出的建议。将自定义helm值设置如下:

代码语言:javascript
复制
prometheus:
  prometheusSpec:
    podMonitorSelectorNilUsesHelmValues: false
    probeSelectorNilUsesHelmValues: false
    ruleSelectorNilUsesHelmValues: false
    serviceMonitorSelectorNilUsesHelmValues: false
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-29 10:25:32

如果将prometheus.prometheusSpec.podMonitorSelectorNilUseHelmValues定义为false (在values.yaml中,默认设置为true ),则可以实现目标。因为值是true,所以它只是尝试为匹配PodMonitor设置一个release标签,而您自己的定义并不包括这个标签。

或者,您可以将其保留为true,并将prometheus.prometheusSpec.podMonitorSelector设置为:

代码语言:javascript
复制
matchLabels:
  prometheus: "true"

并在您的prometheus: "true"中添加标签podmonitor.yaml

单击“这里”检查代码,如果您有详细信息的话。

请注意,此链接中的图表版本为15.4.4,您应该更改为您正在使用的版本,以防有任何更新。

票数 7
EN

Stack Overflow用户

发布于 2021-08-20 13:06:48

添加此答案,以解决OP中的评论者提出的问题。下面是我使用的PodMonitor定义+ kube-prometheus-stack舵机图表的自定义舵值,以便让Prometheus操作符发现pod作为目标。重点是标签app: strimzi。注释部分展示了如何配置helm以使Prometheus识别该标签。

代码语言:javascript
复制
#--------------------------------------------------------------------------------
# The kube-prometheus-stack helm chart must have the value
# podMonitorSelector.matchLabels set to match the label `app: strimzi` of the PodMonitors below.
# Otherwise Prometheus operator will not scrape the metrics of the corresponding pods
#
# prometheus:
#   prometheusSpec:
#     podMonitorSelector:
#       matchLabels:
#         app: strimzi
#--------------------------------------------------------------------------------

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: strimzi-cluster-operator-metrics
  labels:
    app: strimzi
spec:
  selector:
    matchLabels:
      strimzi.io/kind: cluster-operator
  namespaceSelector:
    matchNames:
      - strimzi
  podMetricsEndpoints:
  - path: /metrics
    port: http
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68085831

复制
相关文章

相似问题

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