k8s误删pvc状态为Terminating且pv还在恢复方法
young / / k8s / 阅读量

有人误删pvc,由于pod还在使用pvc,所以现在的状态为Terminating。

恢复操作:

首先调节pv的回收策略为Retain,pv 的回收策略有三种分别是:

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

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

kubectl edit pv PVNAME

备份pvc yml

kubectl get pvc PVCNAME -o yaml > PVCNAME.yml

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

# 删除pod
kubectl -n test scale deploy nginx --replicas=0
# 查看pvc
kubectl get pvc 

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

kubectl edit pv PVNAME
# 找到如下内容并删除,共7行
#  claimRef:
#    apiVersion: v1
#    kind: PersistentVolumeClaim
#    name: data-apisix-etcd-1
#    namespace: arexpert
#    resourceVersion: "15491"
#    uid: 050108cd-ba8e-4f2f-9345-dbca90a43c85

删除完成后,保存退出,重新创建pvc,并查看状态,启动pod,查看状态

kubectl apply -f PVCNAME.yml
kubectl get pvc 
kubectl -n test scale deploy nginx --replicas=0

至此,pvc恢复完成。

支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章