部署k8s監控(1.2):Prometheus-operator配置持久化方案

轉接上文部署k8s監控(1):Prometheus-operator監控k8s集羣的各個組件及pod(二進制環境
解決上一篇博客遺留的問題:
產生的數據如何作到持久化node

prometheus默認的存儲方式 (- emptyDir: {})

它的生命週期和pod的生命週期同樣,重啓pod後數據會丟失,所以須要修改持久化方案保存數據
持久化方案後很會:
這裏使用的是hostpath,也可使用pv/pvcspa

1、進入prometheus-k8s的statefulset中修改掛載文件的類型

[root@k8s-master1 /]# kubectl edit statefulset prometheus-k8s -n monitoring
      volumes:
      - name: config
        secret:
          defaultMode: 420
          secretName: prometheus-k8s
      - hostPath:                         #修改成volume卷的形式
          path: /prometheus/config-out    #掛載的位置
          type: Directory                 #掛載的類型
        name: config-out
      - configMap:
          defaultMode: 420
          name: prometheus-k8s-rulefiles-0
        name: prometheus-k8s-rulefiles-0
      - hostPath:                              #修改成volume卷的形式
          path: /prometheus/prometheus-k8s-db  #掛載的位置
          type: Directory                      #掛載的類型
        name: prometheus-k8s-db

2、在每臺node節點中建立prometheus目錄,並經過nfs掛載到遠程的數據存儲中心中(對應多個nfs存儲)

也能夠掛載到本地磁盤中,因狀況而定.net

3、啓動服務中,若是遇到如下報錯可按照下方的進行修改

[prometheus-operator]報錯caller=main.go:731 err=「opening storage failed: create dir: mkdir /prometheus/wal: permission denied」code

解決方案:
  [root@k8s-master1 /]# kubectl edit statefulset prometheus-k8s -n monitoring
      securityContext:
        fsGroup: 0
        runAsNonRoot: false
        runAsUser: 0

4、若是要作grafana的持久化存儲也可使用這種方法解決

[root@k8s-master1 /]# kubectl edit deployment grafana -n monitoring 
      volumes:
      - hostPath:
          path: /prometheus
          type: Directory        name: grafana-storage

5、經過nfs掛載到遠程的數據存儲中心中(對應一個nfs存儲)

6、修改用戶權限

[root@k8s-master1 /]# kubectl edit deployment grafana -n monitoring
      securityContext:
          runAsNonRoot: false
          runAsUser: 0
相關文章
相關標籤/搜索