自定义prometheus-operator中容器的参数

简介

prometheus-opertator 方便了我们在Kubernetes里面部署prometheus集群,但是有一些底层的配置也被掩盖了。我遇到的问题就是配置文件的实时生效,要等3分钟才可以。于是去翻了一下CRD的定义,看到prometheus-operator提供了它使用容器的自定义参数配置。

环境

prometheus-operator  - 版本 v0.45.0

问题

创建一个Probe的监控,要等2-3分钟才可以生效,需要让配置生效快一点

kubectl apply -f probe-http.yaml

probe-http.yaml文件内容如下:

---
apiVersion: monitoring.coreos.com/v1
kind: Probe
metadata:
  name: probe-sample
  namespace: monitoring

spec:
  interval: 5s
  module: http_2xx
  jobName: probe-sample
  scrapeTimeout: 2s
  prober:
    url: blackbox-exporter:19115
    scheme: http
  targets:
    staticConfig:
      static:
      - https://www.baidu.com

但是在prometheus的配置文件中一直查看不到target.

调整容器参数

kubectl apply -f prometheus.yaml

prometheus.yaml的定义如下:

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  labels:
    app.kubernetes.io/component: prometheus
    app.kubernetes.io/name: prometheus
    app.kubernetes.io/part-of: kube-prometheus
    app.kubernetes.io/version: 2.24.0
    prometheus: k8s
  name: k8s
  namespace: monitoring
spec:
  alerting:
    alertmanagers:
    - apiVersion: v2
      name: alertmanager-main
      namespace: monitoring
      port: web
  image: quay.io/prometheus/prometheus:v2.24.0
  containers:
  - name: config-reloader  #这个地方就是自定义配置文件reloader的参数,我将默认的3分钟调整为5秒。目前支持的容器名称有prometheus,config-reloader,thanos-sidecar.
    args:
    - --watch-interval=5s
    - --listen-address=:8080
    - --reload-url=http://localhost:9090/-/reload
    - --config-file=/etc/prometheus/config/prometheus.yaml.gz
    - --config-envsubst-file=/etc/prometheus/config_out/prometheus.env.yaml
    - --watched-dir=/etc/prometheus/rules/prometheus-k8s-rulefiles-0
  nodeSelector:
    kubernetes.io/os: linux
  podMetadata:
    labels:
      app.kubernetes.io/component: prometheus
      app.kubernetes.io/name: prometheus
      app.kubernetes.io/part-of: kube-prometheus
      app.kubernetes.io/version: 2.24.0
  podMonitorNamespaceSelector: {}
  podMonitorSelector: {}
  probeNamespaceSelector: {}
  probeSelector: {}
  replicas: 1
  retention: 48h
  storage:
    volumeClaimTemplate:
      spec:  
        accessModes: 
        - ReadWriteOnce
        storageClassName: nfs-csi
        resources:
          requests:
            storage: 40Gi
      
  resources:
    requests:
      memory: 400Mi
  ruleSelector:
    matchLabels:
      prometheus: k8s
      role: alert-rules
  securityContext:
    fsGroup: 2000
    runAsNonRoot: true
    runAsUser: 1000
  serviceAccountName: prometheus-k8s
  serviceMonitorNamespaceSelector: {}
  serviceMonitorSelector: {}
  version: 2.24.0

这样再创建一个新的监控目标的时候,很快就会反应到prometheus的配置文件中了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值