一、背景:

公司平台k8s集群,有人误删pvc,由于pod还在使用pvc,所以现在的状态为Terminating。

二、操作恢复:

1、首先调节pv的回收策略为Retain

     pv 的回收策略有三种分别是:
	 Retain:PV的默认回收策略,删除pvc后,挂载卷的数据会保留。可以通过kubectl get pv看到
     Recycle:删除卷的内容并使卷可用于再次声明。通过这种方式,持久卷可以被不同的持久卷声明和pod反复使用。但是删除pv以后,挂载卷的数据会被删除掉。
     Delete:删除底层存储。

调节pv的回收策略为Retain,如果是Retain则省略此步:

kubectl edit pv PVNAME

调节完成后如下图所示:

2、停止相关pod,当pod停止后,相关pvc会删除;

当前pvc状态

kubecctl delet pod my-pvpvc-pod

删除成功后,pvc一会也会随着删除

kubectl get pvc 

3、修改pv,删除以前的绑定信息:

现在pv的状态为:

kubectl edit pv 

找到红色方框里的内容,并删除,共7行 删除完成后,保存退出,

4、重新创建pvc,并查看状态,启动pod,查看状态

kubectl apply -f test.yaml
kubectl get pvc 
kubectl get pv

kubectl apply -f pod.yaml

至此,pvc恢复完成。