Kubernetes 中跨 StorageClass 存储迁移指南

本文介绍了如何将 Kubernetes 集群中现有 PV 的数据迁移到新的 PV,并创建同名的 PVC 来指向新的 PV,这样就完成了应用的数据迁移而不需要对应用的配置清单做任何更改。最后还介绍了如何通过云原生备份容灾 SaaS 服务来简化迁移过程。 大家好,我是米开朗基杨。 KubeSphere 3.3.0 (不出意外的话~)下周就要 GA 了,作为一名 KubeSphere 脑残粉,我迫不及待地先安装 RC 版尝尝鲜,一顿操作猛如虎开启所有组件,装完之后发现有点尴尬:我用错了持久化存储。 我的 K8s 集群中有两个存储类(StorageClass),一个是 OpenEBS 提供的本地存储,另一个是 QingCloud CSI 提供的分布式存储,而且默认的 StorageClass 是 OpenEBS 提供的 local-hostpath,所以 KubeSphere 的有状态组件默认便使用本地存储来保存数据。 失误失误,我本来是想用分布式存储作为默认存储的,但是我忘记将 csi-qingcloud 设置为默认的 StorageClass 了,反正不管怎样,就这么稀里糊涂地搞错了。虽然重装可以解决 99% 的问题,但作为一名成熟的 YAML 工程师,重装是不可能的,必须在不重装的情况下解决这个问题,才能体现出我的气质! 事实上不止我一个人遇到过这种情况,很多人都会稀里糊涂地装完一整套产品之后发现 StorageClass 用错了,这时候再想改回去恐怕就没那么容易了。这不巧了么这不是,本文就是来帮助大家解决这个问题的。 思路 我们先来思考一下换 StorageClass 需要做哪几件事情。首先需要将应用的副本数缩减为 0,然后创建一个新的 PVC,将旧 PV 的数据复制到新 PV,然后让应用使用新的 PV,并将副本扩展到原来的数量,最后再将旧… Continue reading Kubernetes 中跨 StorageClass 存储迁移指南