【k8s】Volume-persistentVolumeReclaimPolicy


環境

  1. kubernetes 1.20.6
  2. Spring Boot 2.5.0-RC1

目標

persistentVolumeReclaimPolicy 表示 pv 的重用策略,如果手動創建的 pv 默認為 Retain。
如果是動態提供的,默認為 Delete。還有一種 Recycle 已經過時了。

示例

建立 pv 和 pvc

[root@master ~]# kubectl get pv
NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM          STORAGECLASS   REASON   AGE
pv1    1Gi        RWX            Retain           Available                                          8m32s
pv2    2Gi        RWX            Retain           Bound       default/pvc2                           8m21s
pv5    5Gi        RWX            Retain           Bound       default/pvc3                           8m12s

pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-test
spec:
  resources:
    requests:
      storage: 2Gi
  accessModes:
    - ReadWriteMany

查看

[root@master ~]# kubectl get pv
NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM          STORAGECLASS   REASON   AGE
pv1    1Gi        RWX            Retain           Available                                          9m28s
pv2    2Gi        RWX            Retain           Bound       default/pvc2                           9m17s
pv5    5Gi        RWX            Retain           Bound       default/pvc3                           9m8s
[root@master ~]# kubectl get pvc
NAME       STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-test   Pending                                                     16s
pvc2       Bound     pv2      2Gi        RWX                           6m10s
pvc3       Bound     pv5      5Gi        RWX                           63s

雖然 pv1 還沒有被綁定,但是 pvc-test 要求 2Gi 的存儲,滿足不了,所以進入了 Pending 狀態。

刪除在使用的 pvc

[root@master ~]# kubectl delete pvc pvc3
persistentvolumeclaim "pvc3" deleted
[root@master ~]# kubectl get pv
NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM          STORAGECLASS   REASON   AGE
pv1    1Gi        RWX            Retain           Available                                          11m
pv2    2Gi        RWX            Retain           Bound       default/pvc2                           11m
pv5    5Gi        RWX            Retain           Released    default/pvc3                           10m
[root@master ~]# kubectl get pvc
NAME       STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-test   Pending                                                     2m3s
pvc2       Bound     pv2      2Gi        RWX                           7m57s

雖然將 pvc3 刪除了,但是 pv5 的狀態變成了 Released,也是不可以提供給 pv 使用的。
所以 pvc-test 還是 Pending 狀態。原因是策略 Retain 會保留刪除了 pvc 的 pv,並不會重新使用。

總結

pv 的 persistentVolumeReclaimPolicy 定義了 pvc 刪除時,pv 的保留策略。

附錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM