一、背景:
公司平台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恢复完成。