Kubernetes 如何手动恢复PV

Kubernetes 如何手动恢复PV,kubernetes,persistent-volumes,Kubernetes,Persistent Volumes,根据具有“保留”政策的官方文件,PV可以手动恢复。这实际上意味着什么?是否有一种工具可以让我从“保留”PV读取数据并将其写入另一个PV,或者意味着您可以装载该卷手册以获得访问权限?有三种回收策略定义删除绑定卷声明后持久卷的情况 保留 删除 回收 删除表示永久卷以及外部基础结构中的关联存储资产被删除 回收将清理卷rm-rf/thevolume/*之后,它将可用于新的持久性卷声明 Retain使持久卷处于释放状态,不允许新的持久卷声明回收它。整个回收过程是手动的。您需要自己删除持久卷。您可以备份

根据具有“保留”政策的官方文件,PV可以手动恢复。这实际上意味着什么?是否有一种工具可以让我从“保留”PV读取数据并将其写入另一个PV,或者意味着您可以装载该卷手册以获得访问权限?

有三种回收策略定义删除绑定卷声明后持久卷的情况

  • 保留
  • 删除
  • 回收
删除表示永久卷以及外部基础结构中的关联存储资产被删除

回收将清理卷rm-rf/thevolume/*之后,它将可用于新的持久性卷声明

Retain使持久卷处于释放状态,不允许新的持久卷声明回收它。整个回收过程是手动的。您需要自己删除持久卷。您可以备份存储资产中的数据,然后删除数据。然后,您可以删除存储资产或为此资产创建新的永久卷

如果要使用Kubernetes将数据写入另一个持久卷,可以使用作业来复制数据

在这种情况下,请确保使用持久卷访问模式ROX-ReadOnlyMany或RWX-ReadWriteMany,并启动一个运行容器的作业,该容器使用选择器声明要备份的持久卷,并声明另一个目标备份卷。然后通过容器复制数据

或者,您可以在Kubernetes之外进行备份。然后,您的方法取决于您正在使用的存储资产的类型。例如,如果您使用NFS,则可以装载源和目标,并通过命令行复制数据


我提出的两个选项或多或少都是手动备份策略。如果您的目标是为生产工作负载制定更复杂的备份策略,那么您可以查看一下

有三种回收策略,它们定义了删除绑定卷声明后持久卷的情况

  • 保留
  • 删除
  • 回收
删除表示永久卷以及外部基础结构中的关联存储资产被删除

回收将清理卷rm-rf/thevolume/*之后,它将可用于新的持久性卷声明

Retain使持久卷处于释放状态,不允许新的持久卷声明回收它。整个回收过程是手动的。您需要自己删除持久卷。您可以备份存储资产中的数据,然后删除数据。然后,您可以删除存储资产或为此资产创建新的永久卷

如果要使用Kubernetes将数据写入另一个持久卷,可以使用作业来复制数据

在这种情况下,请确保使用持久卷访问模式ROX-ReadOnlyMany或RWX-ReadWriteMany,并启动一个运行容器的作业,该容器使用选择器声明要备份的持久卷,并声明另一个目标备份卷。然后通过容器复制数据

或者,您可以在Kubernetes之外进行备份。然后,您的方法取决于您正在使用的存储资产的类型。例如,如果您使用NFS,则可以装载源和目标,并通过命令行复制数据


我提出的两个选项或多或少都是手动备份策略。如果您的目标是为生产工作负载提供更复杂的备份策略,您可以查看一下手动恢复卷的过程,如下所示

即使在删除PVC后,您也可以使用相同的PV将数据装载到不同的pod上(PV必须存在,如果storageclass的回收策略为Retain,PV通常会存在)

验证PV是否处于释放状态。(即目前没有pvc公司声称拥有该产品)

➜  ~ kubectl获得pv
名称容量访问模式回收策略状态声明存储类原因期限
pvc-eae6acda-59c7-11e9-ab12-06151ee9837e 16Gi RWO保留已发布默认值/dhanvi测试pvc gp2 52m
编辑PV(
kubectl编辑PV pvc-eae6acda-59c7-11e9-ab12-06151ee9837e
)并删除规范索赔零件。PV索赔将如下所示未解决

➜  ~ kubectl获得pv
名称容量访问模式回收策略状态声明存储类原因期限
pvc-eae6acda-59c7-11e9-ab12-06151ee9837e 16Gi RWO保留可用gp2 57m
然后使用PVC声明PV,如下所示

---
种类:PersistentVolumeClaim
版本:v1
元数据:
名称:dhanvi测试pvc
规格:
访问模式:
-读写
资源:
请求:
储存量:16Gi
卷名:“pvc-eae6acda-59c7-11e9-ab12-06151ee9837e”
可用于以下吊舱中

卷:
-名称:dhanvi测试卷
persistentVolumeClaim:
索赔名称:dhanvi test pvc

更新:卷克隆可能有帮助

手动恢复卷的过程如下所示

即使在删除PVC后,您也可以使用相同的PV将数据装载到不同的pod上(PV必须存在,如果storageclass的回收策略为Retain,PV通常会存在)

验证PV是否处于释放状态。(即目前没有pvc公司声称拥有该产品)

➜  ~ kubectl获得pv
名称容量访问模式回收策略状态声明存储类原因期限
pvc-eae6acda-59c7-11e9-ab12-06151ee9837e 16Gi RWO挡块
...
  capacity:
    storage: 16Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: database
    namespace: staging
  nodeAffinity:
...