更改 PersistentVolume 的回收策略

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

开始之前

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

要检查版本,请输入 kubectl version

为何要修改 PersistentVolume 的回收策略

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

修改 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
    

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

  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
    

    在上述输出中,你可以看到绑定到 Claim default/claim3 的卷的回收策略是 Retain。当用户删除 Claim default/claim3 时,它不会被自动删除。

下一步

参考

最后修改于 2023 年 1 月 11 日太平洋标准时间 11:12:更新 /tasks/administer-cluster 节中的页面权重 (b1202c78ff)