当创建PV时设置的回收策略(Reclaim Policy)为Retain时,PVC删除后,PV的状态变为Released
,新建的PVC无法绑定。
此时可以看到其Claim仍绑定为已被删除的PVC,此时需要手动清除ClaimRef
kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
nfspv001 20Gi RWX Retain Released mypvc 37m
在真实环境中、或对数据有使用需要的情况下,可将数据备份出来。而后清除了ClaimRef,PV则可以自由绑定了。
kubectl edit pv nfspv001
格式如下:
删除claimRef
段落,保存后通过命令查看其状态会变更为Available
,PV即可重新被使用
apiVersion: v1
kind: PersistentVolume
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"PersistentVolume","metadata":{"annotations":{},"name":"nfspv001"},"spec":{"accessModes":["ReadWriteMany"],"capacity":{"storage":"20Gi"},"nfs":{"path":"/data/nfsdata","server":"192.168.3.201"}}}
pv.kubernetes.io/bound-by-controller: "yes"
creationTimestamp: "2020-11-11T11:13:04Z"
finalizers:
- kubernetes.io/pv-protection
name: nfspv001
resourceVersion: "2881470"
uid: f202db11-e43a-4188-bf93-52300f354713
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 20Gi
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: uagw-server-pvc
namespace: default
resourceVersion: "2881128"
uid: 4fd5c93f-d995-4076-a9f0-3ed7c3d222aa
nfs:
path: /data/nfsdata
server: 192.168.3.201
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
status:
phase: Released