更改Kubernetes持久卷的存储类并保留数据

envsm3lx  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(3)|浏览(182)

我的Elasticsearch数据单元当前在AKS上运行,并连接到使用高级SSD管理的磁盘存储类的永久卷,我想将其降级为标准SSD管理的磁盘,而不丢失当前使用的永久卷上的数据。我创建了一个新的存储类,该存储类定义为标准SSD管理的磁盘,但如果我从该文件创建一个新的PV,它显然不会保留旧数据,我需要以某种方式复制它,所以我想知道切换PV的存储类的最佳实践是什么。

1qczuiv0

1qczuiv01#

遗憾的是,创建PVC并为其调配PV后,您唯一可以更改的内容是卷的大小,而无需创建新的PVC
在不利用CSI快照/克隆(您可能无法访问这些快照/克隆,具体取决于您如何创建PVC/PV AFAIK)的情况下,我能想到的唯一直接方法是创建一个新PVC,并在Pod具有root访问权限和rsync命令的部署上装载两个卷。
在这样的Pod上运行rsync -a /old/volume/mount/path /new/volume/mount/path应该会得到你想要的。
但是,您应确保在删除PVC或使用PV的任何其他资源之前执行此操作。默认情况下,大多数默认存储类创建的卷都具有回收策略,这些策略会在使用PV的所有资源消失后立即删除该PV,因此数据丢失的风险很小

n6lpvg4x

n6lpvg4x2#

由于上述原因,在Kubernetes中无法更改PVC的存储类别。遗憾的是,您必须创建一个具有所需存储类别的新PVC。

juud5qan

juud5qan3#

实现此目的的一种方法是创建一个快照,然后从该快照创建新卷:https://kubernetes.io/docs/concepts/storage/volume-snapshots/
另一种方法是利用CSI克隆:https://kubernetes.io/docs/concepts/storage/volume-pvc-datasource/
两者都有效地促进了使用现有数据的拷贝创建新PV

相关问题