部署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
相关文章
相关标签/搜索