additionalScrapeConfigs 에 직접 target을 작성하다보면 1000줄, 2000줄이 넘어가 values.yaml파일이 길어져 관리가 힘들어집니다..
그렇기 때문에 Scrape Targets을 외부 Secret으로 빼고 Secret을 참조하는방식으로 관리하도록 변경했습니다.
1. 기존 ScrapeTarget을 파일로 생성
기존에 values.yaml의 prometheus.prometheusSpec.additionalScrapeConfigs에 적혀있던 설정을 파일로 따로 작성합니다.
- prometheus-scrape-target.yaml
- job_name: server1
static_configs:
- targets: ["1.1.1.1:9100"]
labels:
alias: "server1"
job: "node-exporter"
component: "linux-server"
- job_name: server2
static_configs:
- targets: ["1.1.1.2:9100"]
labels:
alias: "server2"
job: "node-exporter"
component: "linux-server"
2. 파일 기준 Secret manifest 생성
kubectl create secret generic --from-file=prometheus-scrape-target.yaml --dry-run=client -o yaml > additional-scrape-target.yaml
위 명령어는 방금 작성한 파일을 기준으로 쿠버네티스 시크릿을 생성할 수 있는 secret manifest yaml파일을 생성합니다.
생성된 additional-scrape-target.yaml 파일을 기준으로 시크릿을 생성합니다.
kubectl apply -f additional-scrape-target.yaml
3. 기존 values에 적용
기존 values.yaml에
prometheus.prometheusSpec.additionalScrapeConfigs 를 지우고
prometheus.prometheusSpec.additionalScrapeConfigsSecret에 2에서 생성한 시크릿을 참조하도록 작성합니다.
additionalScrapeConfigsSecret:
enabled: true
name: additional-scrape-configs
key: prometheus-scrape-target.yaml
prometheus-scrape-target.yaml을 기준으로 시크릿파일 생성 => 생성된 시크릿파일로 시크릿 생성 => values.yaml에서 그 시크릿을 참조
개인적으로 kube-prometheus-stack가 운영을 할 수록 values의 길이가 길어져 관리가 힘든차에 이러한 방법을 발견했습니다. 참고로 additionalScrapeConfigs 와 additionalScrapeConfigsSecret은 같이 쓰일 수 없습니다
>> Home