prometheus數據持久化


1.定義一個storageclass

[root@master01 ~]# cat prometheus-storageclass.yaml 
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: prometheus-data-db
provisioner: qgg-nfs-storage   #### 我這邊是NFS做的存儲,provisioner名稱,請確保該名稱與 nfs-StorageClass.yaml文件中的provisioner名稱保持一致

2.定義一個pvc

[root@master01 ~]# cat prometheus-data-db.yaml 
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: prometheus-data-db
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: prometheus-data-db
[root@master01 ~]# kubectl get pvc -n monitoring 
NAME                                 STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS         AGE
prometheus-k8s-db-prometheus-k8s-0   Bound    pvc-4c8f9a58-1fcd-4bf9-98e6-3fc016bdde1f   1Gi        RWO            prometheus-data-db   2d21h
prometheus-k8s-db-prometheus-k8s-1   Bound    pvc-b00f8bf2-1a28-4c75-bbd9-62e6f3f97a8f   1Gi        RWO            prometheus-data-db   2d21h

3.prometheus文件修改

[root@master01 manifests]# cat prometheus-prometheus.yaml 
  1 apiVersion: monitoring.coreos.com/v1
  2 kind: Prometheus
  3 metadata:
  4   labels:
  5     prometheus: k8s
  6   name: k8s
  7   namespace: monitoring
  8 spec:
  9   retention: 7d ### 數據保留時間
 10   alerting:
 11     alertmanagers:
 12     - name: alertmanager-main
 13       namespace: monitoring
 14       port: web
 15   storage:   # 數據持久化
 16     volumeClaimTemplate:
 17       spec:
 18         storageClassName: prometheus-data-db
 19         resources:
 20           requests:
 21             storage: 1Gi
# 說了prometheus operator持久化的問題,但是還有一個問題很多人都忽略了,那就是prometheus operator數據保留天數,根據官方文檔的說明,默認prometheus operator數據存儲的時間為1d,這個時候無論你prometheus operator如何進行持久化,都沒有作用,因為數據只保留了1天,那么你是無法看到更多天數的數據

4.測試

[root@master01 manifests]# kubectl delete pod -n monitoring  prometheus-k8s-0
pod "prometheus-k8s-0" deleted
[root@master01 manifests]# kubectl delete pod -n monitoring  prometheus-k8s-1
pod "prometheus-k8s-1" deleted
[root@master01 manifests]# kubectl get pod -n monitoring 
NAME                                   READY   STATUS    RESTARTS   AGE
prometheus-k8s-0                       2/2     Running   1          63s
prometheus-k8s-1                       2/2     Running   1          54s



免責聲明!

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



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