更改 PersistentVolume 的回收策略

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

准备工作

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

要检查版本,请输入 kubectl version

为什么要更改 PersistentVolume 的回收策略

PersistentVolume 可以具有各种回收策略,包括“保留”、“回收”和“删除”。对于动态配置的 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)