在Prometheus Operator中使用自定義配置


參考:
https://www.prometheus.wang/operator/use-custom-configuration-in-operator.html

在Prometheus Operator我們通過聲明式的創建如Prometheus, ServiceMonitor這些自定義的資源類型來自動化部署和管理Prometheus的相關組件以及配置。而在一些特殊的情況下,對於用戶而言,可能還是希望能夠手動管理Prometheus配置文件,而非通過Prometheus Operator自動完成。 為什么? 實際上Prometheus Operator對於Job的配置只適用於在Kubernetes中部署和管理的應用程序。如果你希望使用Prometheus監控一些其他的資源,例如AWS或者其他平台中的基礎設施或者應用,這些並不在Prometheus Operator的能力范圍之內。

為了能夠在通過Prometheus Operator創建的Prometheus實例中使用自定義配置文件,我們只能創建一個不包含任何與配置文件內容相關的Prometheus實例

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: inst-cc
  namespace: monitoring
spec:
  serviceAccountName: prometheus
  resources:
    requests:
      memory: 400Mi

如果查看新建Prometheus的Pod實例YAML定義,我們可以看到Pod中會包含一個volume配置:

volumes:
  - name: config
    secret:
      defaultMode: 420
      secretName: prometheus-inst-cc

Prometheus的配置文件實際上是保存在名為prometheus- 的Secret中,當用戶創建的Prometheus中關聯ServiceMonitor這類會影響配置文件內容的定義時,Promethues Operator會自動管理。而如果Prometheus定義中不包含任何與配置相關的定義,那么Secret的管理權限就落到了用戶自己手中。

通過修改prometheus-inst-cc的內容,從而可以讓用戶可以使用自定義的Prometheus配置文件,作為示例,我們創建一個prometheus.yaml文件並添加以下內容:

global:
  scrape_interval: 10s
  scrape_timeout: 10s
  evaluation_interval: 10s

生成文件內容的base64編碼后的內容:

$ cat prometheus.yaml | base64
Z2xvYmFsOgogIHNjcmFwZV9pbnRlcnZhbDogMTBzCiAgc2NyYXBlX3RpbWVvdXQ6IDEwcwogIGV2YWx1YXRpb25faW50ZXJ2YWw6IDEwcw==

修改名為prometheus-inst-cc的Secret內容,如下所示:

$ kubectl -n monitoring edit secret prometheus-inst-cc
# 省略其它內容
data:
  prometheus.yaml: "Z2xvYmFsOgogIHNjcmFwZV9pbnRlcnZhbDogMTBzCiAgc2NyYXBlX3RpbWVvdXQ6IDEwcwogIGV2YWx1YXRpb25faW50ZXJ2YWw6IDEwcw=="


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM