【问题标题】:How to recover pv(Released) data after pvc deletionpvc删除后如何恢复pv(已发布)数据
【发布时间】:2021-03-20 10:27:15
【问题描述】:

我在 aws 的 eks 上有一个 kubernetes 集群。我使用 aws-ebs 作为 StorageClass 的 Provisioner,ReclaimPolicy 设置为 Retain。我用 helm 安装应用程序。当我删除应用程序时,pvc 被删除,但 pv 仍然存在。状态为已发布。我可以看到 aws-ebs 卷仍在 aws 控制台中。现在我想创建一个新应用程序并仍然使用原始数据。我认为有两种方法可以做到这一点

  1. 手动创建pvc绑定这个pv让pv重新工作,但是StorageClass不能用
  2. 重新新建一个PV绑定aws-ebs然后通过这个PV新建一个PVC,好像StorageClass不能用了

但是不知道怎么改,可以求助吗?提前致谢

【问题讨论】:

    标签: kubernetes amazon-eks persistent-volumes persistent-volume-claims


    【解决方案1】:

    ReclaimPolicy: Retain 表示:

    Retain 回收策略允许手动回收 资源。当 PersistentVolumeClaim 被删除时, PersistentVolume 仍然存在,并且该卷被视为“已释放”。 但它还不能用于另一个索赔,因为之前的 索赔人的数据保留在卷上。管理员可以手动 通过以下步骤回收卷。

    1. 删除持久卷。外部基础设施(例如 AWS EBS、GCE PD、Azure 磁盘或 删除 PV 后 Cinder volume) 仍然存在。

    2. 相应地手动清理相关存储资产上的数据。

    3. 手动删除关联的存储资产,或者如果您想重复使用相同的存储资产,请创建一个新的 PersistentVolume 并使用 存储资产定义。

    Here您可以找到一个示例,逐步说明如何在PVC被删除后手动重用PV,这样数据不会丢失。

    【讨论】:

    • @gophergfer 你成功了吗?
    • 我新建了一个pvc并将它的volumeName设置为pv的名字。然后我修改了pv的claimRef的name、namespace、uid和resourceVersion,使其与新的pvc保持一致。运行
    • 如果PV不存在,可以通过修改这个值awsElasticBlockStore.volumeID连接到aws ebs
    猜你喜欢
    • 2020-02-13
    • 1970-01-01
    • 2023-04-09
    • 2014-03-04
    • 1970-01-01
    • 2020-07-09
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多