为 helm 安装的 prometheus-operator 设置服务发现的命名空间

Set namespace of service-discovery for prometheus-operator installed by helm

我已经通过 helm 3 安装了 prometheus-operator

helm install prom stable/prometheus-operator --namespace monitor

但我还想为标准安装中的“默认”服务发现设置命名空间。

当我 query the prometheus config 时,我看到了这个:

kubernetes_sd_configs:
- role: endpoints
  namespaces:
    names:
    - default

我已经查看了 prometheus-operator 的文档,但找不到有关如何更改默认命名空间的选项。

有一个参数serviceMonitorNamespaceSelector,但这似乎是在命名空间中搜索 serviceMonitor 本身。

应在所需的命名空间中创建一个 ServiceMonitor 对象,并使用适当的标签供 Prometheus Operator 处理它。

参考https://coreos.com/operators/prometheus/docs/latest/api.html#servicemonitorspec

感谢@naga 的提示,我找到了解决方案:

使用 helm 安装 prometheus operator:

helm install prom stable/prometheus-operator --namespace monitor -f values.yaml

values.yaml配置文件:

kubelet:
  serviceMonitor:
    https:
      false
prometheus:
  additionalServiceMonitors:
    - name: my-monitor
      selector:
        matchLabels:
          app.kubernetes.io/instance : myvalue
      namespaceSelector:
        matchNames:
          - mynamespace
      endpoints:
        - port: metrics
          interval: 10s