更改 PersistentVolume 的回收策略

本页介绍如何更改 Kubernetes PersistentVolume 的回收策略。

开始之前

你需要一个 Kubernetes 集群,并且必须配置 kubectl 命令行工具以与你的集群通信。建议在至少有两个不充当控制平面主机的节点的集群上运行本教程。如果还没有集群,你可以使用 minikube 创建一个集群,或者使用以下 Kubernetes Playground 之一

要检查版本,请输入 kubectl version

为什么更改 PersistentVolume 的回收策略

PersistentVolume 可以有多种回收策略,包括“保留(Retain)”、“回收(Recycle)”和“删除(Delete)”。对于动态配置的 PersistentVolume,默认的回收策略是“删除”。这意味着当用户删除相应的 PersistentVolumeClaim 时,会自动删除动态配置的卷。如果卷包含重要数据,则此自动行为可能不合适。在这种情况下,使用“保留”策略更合适。使用“保留”策略,如果用户删除 PersistentVolumeClaim,则不会删除相应的 PersistentVolume。相反,它将移动到“已释放”阶段,可以在该阶段手动恢复其所有数据。

更改 PersistentVolume 的回收策略

  1. 列出集群中的 PersistentVolume

    kubectl get pv
    

    输出类似于这样

    NAME                                       CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS    CLAIM             STORAGECLASS     REASON    AGE
    pvc-b6efd8da-b7b5-11e6-9d58-0ed433a7dd94   4Gi        RWO           Delete          Bound     default/claim1    manual                     10s
    pvc-b95650f8-b7b5-11e6-9d58-0ed433a7dd94   4Gi        RWO           Delete          Bound     default/claim2    manual                     6s
    pvc-bb3ca71d-b7b5-11e6-9d58-0ed433a7dd94   4Gi        RWO           Delete          Bound     default/claim3    manual                     3s
    

    此列表还包括绑定到每个卷的声明的名称,以便更容易识别动态配置的卷。

  2. 选择你的一个 PersistentVolume 并更改其回收策略

    kubectl patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
    

    其中 <your-pv-name> 是你选择的 PersistentVolume 的名称。

  3. 验证你选择的 PersistentVolume 是否具有正确的策略

    kubectl get pv
    

    输出类似于这样

    NAME                                       CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS    CLAIM             STORAGECLASS     REASON    AGE
    pvc-b6efd8da-b7b5-11e6-9d58-0ed433a7dd94   4Gi        RWO           Delete          Bound     default/claim1    manual                     40s
    pvc-b95650f8-b7b5-11e6-9d58-0ed433a7dd94   4Gi        RWO           Delete          Bound     default/claim2    manual                     36s
    pvc-bb3ca71d-b7b5-11e6-9d58-0ed433a7dd94   4Gi        RWO           Retain          Bound     default/claim3    manual                     33s
    

    在前面的输出中,你可以看到绑定到声明 default/claim3 的卷具有回收策略 Retain。当用户删除声明 default/claim3 时,不会自动删除它。

下一步

参考

上次修改时间为 2023 年 1 月 11 日下午 11:12(太平洋标准时间):更新 /tasks/administer-cluster 部分中的页面权重 (b1202c78ff)