k8s

pv误删除恢复

背景

在删除不用的pv时,误删除了一个正在使用的pv,下面总结一下如何恢复。

过程

之前的没有截图,我创建了一个nginx pod,挂载pv,模拟一下误删除场景。

查看pv并删除

kubectl get pv | grep long
kubectl delete pv pvc-2ace3553-b8e6-4ef8-8149-4cb372064d36

file

此时pv处于Terminating状态,这是因为pv有finalizers。

finalizers:
  - kubernetes.io/pv-protection
  - external-attacher/driver-longhorn-io

注意,只删除了pv,pod和pvc都没有删除。

恢复

保存pv的yaml文件

kubectl get pv pvc-2ace3553-b8e6-4ef8-8149-4cb372064d36 -o yaml > pv.yaml

编辑pv删除finalizers字段

kubectl edit pv pvc-2ace3553-b8e6-4ef8-8149-4cb372064d36

此时pv已经被删除了。
file

编辑pv.yaml,删除delete字段

deletionGracePeriodSeconds: 0
deletionTimestamp: ""

重新apply pv

kubectl apply -f pv.yaml
kubectl get pv | grep long

file

pv状态变为Bound,恢复成功。

分类: k8s
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部
0
希望看到您的想法,请您发表评论x