grafana 在k8s裡配置持久化數據

2024年2月6日 23点热度 0人点赞

grafana 在k8s裡配置持久化數據

1.pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: grafana-pv 
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: ''
  hostPath:
    path: /data/store/grafana-pv
    type: DirectoryOrCreate

2.pvc.yaml (可寫到deployment裡)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana-pvc
spec:
  volumeName: grafana-pv
  resources:
    requests:
      storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  storageClassName: ''

3.grafana-deployment.yaml

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: grafana-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: ''
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: grafana
  name: grafana
spec:
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      securityContext:
        runAsUser: 472 
        fsGroup: 472
      containers:
        - name: grafana
          image: grafana/grafana:7.5.3
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000
              name: http-grafana
              protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /robots.txt
              port: 3000
              scheme: HTTP
            initialDelaySeconds: 10
            periodSeconds: 30
            successThreshold: 1
            timeoutSeconds: 2
          livenessProbe:
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: 3000
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 150m
              memory: 350Mi
          volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-pv
      volumes:
        - name: grafana-pv
          persistentVolumeClaim:
            claimName: grafana-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: grafana
spec:
  ports:
    - port: 3000
      protocol: TCP
      targetPort: http-grafana
  selector:
    app: grafana
  type: NodePort

securityContext:

runAsUser: 472

fsGroup: 472

可以改成

securityContext:

runAsUser: 472

fsGroup: 0

Version

User

User ID

Group

Group ID

< 5.1

grafana

104

grafana

107

>= 5.1

grafana

472

grafana

472

>= 7.3

grafana

472

root

0

目錄權限:

chown -R grafana.grafana /data/store*

chmod -R 777 /data/store*