kube-prometheus监控数据持久化

版本信息

k8s版本对应kube-prometheus对照表

Stack/Version Kubernetes 1.22 Kubernetes 1.23 Kubernetes 1.24 Kubernetes 1.25 Kubernetes 1.26 Kubernetes 1.27 Kubernetes 1.28
release-0.10
release-0.11
release-0.12
release-0.13
main

项目地址:https://github.com/prometheus-operator/kube-prometheus.git

部署

下载源码

wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/tags/v0.13.0.zip

解压压缩包

unzip kube-prometheus-0.13.0.zip
cd kube-prometheus-0.13.0

Prometheus持久化

prometheus监控默认的监控数据存储方式为emptyDir,需要修改为NFS持久化存储。编辑manifests/prometheus-prometheus.yaml在文件末尾添加

spec:
storage: #这部分为持久化配置
volumeClaimTemplate:
spec:
storageClassName: nfs-provisioner
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi

部署CRD自定义资源

kubectl apply --server-side -f manifests/setup/

部署监控

kubectl apply -f manifests/

执行部署之后会创建两个pvc,如下所示

NAME                                 STATUS   VOLUME                                     CAPACITY   ACCESS 
prometheus-k8s-db-prometheus-k8s-0 Bound pvc-fe27bace-0c6e-4050-b252-37bd3656108c 10Gi RWO
prometheus-k8s-db-prometheus-k8s-1 Bound pvc-3966e3c0-e536-471c-b13e-174e1102b490 10Gi RWO

检查Prometheus状态

kubectl -n monitoring get pod|grep prometheus-k8s
prometheus-k8s-0 2/2 Running 0 4m22s
prometheus-k8s-1 2/2 Running 0 4m22s

进入pod查看数据挂载目录

kubectl -n monitoring exec -it prometheus-k8s-0 -- sh
Defaulting container name to prometheus.
Use 'kubectl describe pod/prometheus-k8s-0 -n monitoring' to see all of the containers in this pod.
/prometheus $
/prometheus $ df -h|grep nfs
192.168.229.133:/nfs/monitoring-prometheus-k8s-db-prometheus-k8s-0-pvc-fe27bace-0c6e-4050-b252-37bd3656108c/prometheus-db
/prometheus $

grafana持久化

修改manifests/grafana-deployment.yamlvolumes.name.grafana-storage为以下内容

volumes:
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana

创建pvc

cat > manifests/grafana-pvc.yaml <<EOF
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
k8s.kuboard.cn/pvcType: Dynamic
pv.kubernetes.io/bind-completed: 'yes'
pv.kubernetes.io/bound-by-controller: 'yes'
name: grafana
namespace: monitoring
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: nfs-provisioner
status:
accessModes:
- ReadWriteMany
capacity:
storage: 10Gi
EOF

创建grafana pvc

kubectl apply -f manifests/grafana-pvc.yaml

更新grafana deployment

kubectl apply -f manifests/grafana-deployment.yaml

参考链接:https://blog.csdn.net/vic_qxz/article/details/119598466

文章作者: 慕容峻才
文章链接: https://www.acaiblog.top/kube-prometheus监控数据持久化/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿才的博客
微信打赏
支付宝打赏