You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不丢失数据的情况下为现有kube-prometheus-stack添加additionalScrapeConfigs?

无需Helm升级即可更新kube-prometheus-stack配置的方法

方法一:直接修改Prometheus的ConfigMap

    1. 定位Prometheus对应的ConfigMap:
    kubectl get configmaps -n monitoring | grep prometheus
    # 通常名称类似 prometheus-prometheus-kube-prometheus-stack-prometheus
    
    1. 编辑该ConfigMap:
    kubectl edit configmap <configmap-name> -n monitoring
    
    1. 添加blackbox-exporter的抓取规则:
      如果原配置中已有additionalScrapeConfigs字段,直接在该数组内追加配置;如果没有,在scrape_configs节点末尾加入以下内容(根据你的服务地址调整):
    - job_name: 'blackbox-exporter'
      metrics_path: /probe
      params:
        module: [http_2xx]
      static_configs:
        - targets:
          - http://example.com
          - https://your-service.com
      relabel_configs:
        - source_labels: [__address__]
          target_label: __param_target
        - source_labels: [__param_target]
          target_label: instance
        - target_label: __address__
          replacement: prometheus-blackbox-exporter.monitoring.svc.cluster.local:9115
    
    1. 重启Prometheus Pod使配置生效:
    kubectl rollout restart statefulset prometheus-prometheus-kube-prometheus-stack-prometheus -n monitoring
    
  • 注意:这种方式修改的配置会被后续helm upgrade覆盖,建议同步把该配置添加到你的custom-values.yaml中,避免升级时丢失。

方法二:使用Prometheus Operator的AdditionalScrapeConfig CRD

kube-prometheus-stack基于Prometheus Operator,支持通过AdditionalScrapeConfig自定义资源扩展抓取配置,无需直接修改ConfigMap:

    1. 创建additional-scrape-configs.yaml文件:
    apiVersion: monitoring.coreos.com/v1alpha1
    kind: AdditionalScrapeConfig
    metadata:
      name: blackbox-scrape-config
      namespace: monitoring
    spec:
      scrapeConfigs:
      - job_name: 'blackbox-exporter'
        metrics_path: /probe
        params:
          module: [http_2xx]
        static_configs:
          - targets:
            - http://example.com
            - https://your-service.com
        relabel_configs:
          - source_labels: [__address__]
            target_label: __param_target
          - source_labels: [__param_target]
            target_label: instance
          - target_label: __address__
            replacement: prometheus-blackbox-exporter.monitoring.svc.cluster.local:9115
    
    1. 应用该自定义资源:
    kubectl apply -f additional-scrape-configs.yaml
    
    1. 验证配置生效:
      访问Prometheus UI的/config页面,确认新增的抓取规则已加载。Prometheus Operator会自动重载配置,无需手动重启Pod。

补充说明

其实正常执行helm upgrade并不会清除你的现有数据和自定义配置:

  • 监控数据存储在PVC中,Helm升级不会删除PVC;
  • Grafana的用户、仪表盘、数据源默认存在PVC内的sqlite数据库中,只要Chart的grafana.persistence.enabled为true,升级不会丢失这些内容;
  • 若担心配置冲突,可先执行预览命令查看变更:
    helm diff upgrade prometheus prometheus-community/kube-prometheus-stack -n monitoring -f new_values.yaml
    
    确认无破坏性变更后再执行升级。

内容的提问来源于stack exchange,提问作者hvas01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:01:24