Kubernetes PVC数据持久化

Kubernetes PVC数据持久化,kubernetes,google-kubernetes-engine,persistent-volumes,persistent-volume-claims,Kubernetes,Google Kubernetes Engine,Persistent Volumes,Persistent Volume Claims,我在GKE上有一个简单的kubernetes集群设置。为了持久化我的express web app的数据,我在集群中运行了mongodb部署、mongodb部署的集群ip服务和持久卷声明 在我删除GKE控制台上的mongodb部署之前,用户数据正在被存储,一切正常。当我尝试使用以下命令恢复mongodb部署时: kubectl apply -f mongodb-deployment.yaml mongodb部署和PVC再次运行,但以前的所有数据都丢失了。 我的mongodb部署yaml文件:

我在GKE上有一个简单的kubernetes集群设置。为了持久化我的express web app的数据,我在集群中运行了mongodb部署、mongodb部署的集群ip服务和持久卷声明

在我删除GKE控制台上的mongodb部署之前,用户数据正在被存储,一切正常。当我尝试使用以下命令恢复mongodb部署时:

kubectl apply -f mongodb-deployment.yaml
mongodb部署和PVC再次运行,但以前的所有数据都丢失了。

我的mongodb部署yaml文件:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: database-persistent-volume-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
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
我的永久卷声明yaml文件:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: database-persistent-volume-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
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
因为数据存储在集群生命周期之外的持久卷中

当数据库部署启动并再次运行时,以前的数据是否应该保留并可用?


我想我可能在这里遗漏了什么。

是的,回收设置是可能的。请参阅此

如果要保留数据(即使PVC可以删除),请将回收策略更改为保留。然后,即使PVC也将被删除,您的PV将被标记为已发布