事象
PVを落とし上げしているにもかかわらず
$ kubectl delete apply -f pv.yaml persistentvolume "pv-1" deleted $ kubectl get pv No resources found in default namespace. $ kubectl apply -f pv.yaml persistentvolume/pv-1 created
起動直後にPVCが紐づいている。
$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv-1 10Mi RWO Retain Released default/testclaim 2s
環境情報
- kubectl 1.18
原因と解決策
PVを起動する際に使用したyamlのspec.calaimRefに値が入っている。
spec: accessModes: - ReadWriteOnce capacity: storage: 10Mi claimRef: apiVersion: v1 kind: PersistentVolumeClaim name: testclaim namespace: default resourceVersion: "4553" uid: ...
よってclaimRefに関する箇所を削除すればCLAIM欄は空白になる。
$ kubectl apply -f pv.yaml persistentvolume/pv-1 created $ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv-1 10Mi RWO Retain Available 5s
以下、補足です
補足
PVにPVCが紐づいている状態のPVをyamlに保管すると
$ kubectl get pv pv-1 -o=yaml > pv-1.yaml
そのyamlにはPVCの情報がspce欄に残っているため、そのyamlで起動すると該当のPVCを削除した後も事象のようにバインドされているような見え方をします。
見え方だけならいいですが、PVは紐づけされていると認識するため、別のPVCで該当のPVを指定してもPVCでPendingになってしまいます。
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE test-pvc Pending xs
以上、ご参考になれば幸いです。