Постоянные данные Kubernetes PVC

У меня есть простая установка кластера Kubernetes на GKE. Чтобы сохранить данные для моего экспресс-веб-приложения, у меня есть развертывание mongodb, cluster-ip-service для развертывания mongodb и постоянное требование тома, работающее в кластере.

Данные пользователей сохраняются, и все работает нормально, пока я не удалил развертывание mongodb на консоли GKE. Когда я пытаюсь вернуть развертывание mongodb с помощью команды:

kubectl apply -f mongodb-deployment.yaml

Развертывание mongodb и PVC снова запущены, но все предыдущие данные были потеряны.

Мой файл yaml развертывания mongodb:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: database-persistent-volume-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

Мой файл yaml с требованием постоянного тома:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongo-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: mongo
  template:
    metadata:
      labels:
        component: mongo
    spec:
      volumes:
        - name: mongo-storage
          persistentVolumeClaim:
            claimName: database-persistent-volume-claim
      containers:
      - name: mongo
        image: mongo
        ports:
          - containerPort: 27017
        volumeMounts:
          - name: mongo-storage
            mountPath: /var/lib/mongo/data

Поскольку данные хранятся в постоянном томе, который не входит в жизненный цикл кластера.

Разве предыдущие данные не должны сохраняться и становиться доступными при повторном развертывании базы данных?

Думаю, мне здесь что-то не хватает.




Ответы (2)


Да, это возможно с настройкой возврата. См. Эту документацию.

person Bimal    schedule 22.08.2019

Если вы хотите сохранить данные, даже если PVC можно удалить, измените политику восстановления на RETAIN. Тогда даже PVC будет удален, ваш PV будет помечен как RELEASED.

person Oles Rid    schedule 22.08.2019