如何从 --set 参数将 extraScrapeConfigs 添加到 Prometheus helm chart?

Kos*_*ris 7 prometheus kubernetes-helm

我想从stablerepo上的官方掌舵图中部署 Prometheus 。

另外,我想添加我自己的抓取配置。

values.yml在下载并更改图表文件后,我可以直接从图表文件中成功添加额外的配置,但是当我尝试将其作为参数传递时--set没有任何反应。

这在 [in values.yml] 中有效:

# adds additional scrape configs to prometheus.yml
# must be a string so you have to add a | after extraScrapeConfigs:
# example adds prometheus-blackbox-exporter scrape config
extraScrapeConfigs: |
  - job_name: 'sample-job'
    scrape_interval: 1s
    metrics_path: /
    kubernetes_sd_configs:
      - role: endpoints
Run Code Online (Sandbox Code Playgroud)

这不会:

sudo helm upgrade --install prometheus \
--set rbac.create=true \
--set server.persistentVolume.enabled=false \
--set alertmanager.persistentVolume.enabled=false \
--set alertmanager.enabled=false \
--set kubeStateMetrics.enabled=false \
--set nodeExporter.enabled=false \
--set pushgateway.enabled=false \
--set extraScrapeConfigs="|
  - job_name: 'sample-pods'
    scrape_interval: 1s
    metrics_path: /
    kubernetes_sd_configs:
      - role: endpoints
" \
stable/prometheus
Run Code Online (Sandbox Code Playgroud)

有可能吗?

我发现了这个问题How to use --set to set values with Prometheus chart? ,但我找不到将其应用于我的案例的方法。

Nic*_*lay 10

当我们要将多行文本注入到值中时,我们需要处理 YAML 中的缩进。

对于您的特定情况,它是:

sudo helm upgrade --install prometheus \
--set rbac.create=true \
--set server.persistentVolume.enabled=false \
--set alertmanager.persistentVolume.enabled=false \
--set alertmanager.enabled=false \
--set kubeStateMetrics.enabled=false \
--set nodeExporter.enabled=false \
--set pushgateway.enabled=false \
--set extraScrapeConfigs="- job_name: 'sample-pods'
  scrape_interval: 1s
  metrics_path: /
  kubernetes_sd_configs:
    - role: endpoints" \
stable/prometheus
Run Code Online (Sandbox Code Playgroud)

更优雅的方法是使用--set-file key=filepath构造而不是--set

1.我们创造extraScrapeConfigs.yaml并按原样放置我们的价值:

- job_name: 'sample-pods'
  scrape_interval: 1s
  metrics_path: /
  kubernetes_sd_configs:
    - role: endpoints
Run Code Online (Sandbox Code Playgroud)

2.我们部署stable/prometheushelm chart:

sudo helm upgrade --install prometheus \
--set rbac.create=true \
--set server.persistentVolume.enabled=false \
--set alertmanager.persistentVolume.enabled=false \
--set alertmanager.enabled=false \
--set kubeStateMetrics.enabled=false \
--set nodeExporter.enabled=false \
--set pushgateway.enabled=false \
--set-file extraScrapeConfigs=extraScrapeConfigs.yaml \
stable/prometheus
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你,尼古拉!我仍然想知道为什么这些事情没有得到很好的记录。 (4认同)