Данные NFS PersistentVolume теряются при удалении развертывания K8s - PullRequest
0 голосов
/ 28 мая 2019

Я создаю PersistentVolume, используя NFS, как показано ниже, когда я удаляю развертывание, я теряю свои данные.Если я выполняю exec в контейнере postgres, то созданная ранее БД больше не существует.

Используя AWS EKS, мне удалось удалить развертывание без потери данных.

Любая помощь в том, почему это происходит?

PV

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv001
spec:
  capacity:
    storage: 100Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  mountOptions:
    - hard
    - nfsvers=4.1
  nfs:
    path: /mnt/pv001
    server: 164.10.0.1

PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: metabase-postgres-persistent-volume-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

Развертывание

...
    spec:
      volumes:
        - name: metabase-postgres-storage
          persistentVolumeClaim:
            claimName: metabase-postgres-persistent-volume-claim
...

1 Ответ

0 голосов
/ 20 июня 2019

У меня был неправильный mountPath, должен быть / var / lib / postgresql / data

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: edw-pg
spec:
  serviceName: postgres-cluster-ip-service
  replicas: 1
  selector:
    matchLabels:
      component: postgres
  template:
    metadata:
      labels:
        component: postgres
    spec:
      terminationGracePeriodSeconds: 10
      containers:
        - name: postgres
          image: postgres:10.7
          ports:
            - containerPort: 5432  
          volumeMounts:
            - name: edw-persistent-storage-claim
              mountPath: /var/lib/postgresql/data
              readOnly: false
              subPath: postgres
          env:
            - name: PGPASSWORD
              valueFrom:
                secretKeyRef:
                  name: pgpassword
                  key: PGPASSWORD
  volumeClaimTemplates:
  - metadata:
      name: edw-persistent-storage-claim
    spec:
      accessModes: [ "ReadWriteMany" ]
      resources:
        requests:
          storage: 50Gi
...