删除在 kubernetes 中不正确删除的 PersistentVolume

delete improperly removed PersistentVolume in kubernetes

好像,删除pv,pvc的时候,我搞砸了。我可以毫无问题地删除 pvc,但我无法删除其中包含 pv-protection 的 pv。早些时候删除 pv,pvc 时,我按下了 CTRL+C,因为删除它需要时间,并且在删除 pvc 之前还删除了存储 class。我不记得用于创建 pvc 的存储 class。

在这个中说,将pvc保护更新为null将有助于移除pvc。但是我不得不删除具有 pv-protection 的 pv。下面是 pv.

的 describe 输出
~/github/vault-operator# kubectl describe pv pv-hostpath
Name:            pv-hostpath
Labels:          type=local
Annotations:     pv.kubernetes.io/bound-by-controller: yes
Finalizers:      [kubernetes.io/pv-protection]
StorageClass:    manual
Status:          Terminating (lasts <invalid>)
Claim:           poc-namespace/pvc-hostpath
Reclaim Policy:  Retain
Access Modes:    RWO
Capacity:        1Gi
Node Affinity:   <none>
Message:         
Source:
    Type:          HostPath (bare host directory volume)
    Path:          /kube
    HostPathType:  
Events:            <none>

~/github/vault-operator# kubectl get pv,pvc
NAME                           CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS        CLAIM                            STORAGECLASS   REASON   AGE
persistentvolume/pv-hostpath   1Gi        RWO            Retain           Terminating   poc-namespace/pvc-hostpath   manual                  11d

问题是,我该如何删除未正确删除的 pv,这可能是我的问题。

在这种情况下,您有一个 PVC (poc-namespace/pvc-hostpath) 阻止您的 PV 被删除。删除PVC,就可以删除PV

一般来说,一个PVC的Reclaim Policy默认是delete,所以当你删除一个PVC的时候,它会自动删除它绑定的PV。

你的 storageClass 可能是 this 一个(或类似的),来自 rancher。它是基于 hostPath 的,这意味着它将您的容器卷映射到主机。