• Kubernetes
  • kubesphere运行一段时候后,如何切换存储服务?

由于开始选型没做好,直接使用了NFS,现在想换成分布式存储系统,如 GlusterFs
有点无从下手,不知道是不是直接把kubesphere相关的组件的PVC直接更改就可以实现了

  1. 安装欲使用的新存储系统及其CSI驱动/SC等资源
  2. 将所有使用了PVC的Pod删除(将对应Deployment/StatefulSet工作负载的副本数scale到0。为防止副本数被刷新,可先将ks-installer的副本数scale到0,停止其运行)
  3. 等待对应的所有PVC都被卸载后,删除它们
  4. 重新创建所有PVC对象
  5. 将工作负载副本数scale回到初始值,使它们挂载使用新创建的PVC

注意:此操作会导致KS集群的持久化数据清空(不会清空CRD相关的API资源如用户/企业空间/项目等),若想保留数据,可在删除PVC前手动或使用 CDI 等数据导入工具迁移数据,或将NFS对应SC的.parameters.onDelete修改为retain,保留删除PVC/PV后NFS服务器上的数据,并将数据导入对应的新PVC。

    可以创建一个K8S集群来做下测试,

    1. 创建K8S集群
    2. 使用NFS存储
    3. 启动redis pod,写入一些数据并且持久化存储
    4. 切换存储到GlusterFs

      kevendeng
      嗯嗯,感觉这步骤可以,没有意识到要关掉ks-installer,等运维人员准备好存储服务我就开始试试

      1 个月 后
      1 年 后

      willqy
      最简单(但编辑的工作量也不小)的方式:kubectl get pvc -A -o yaml,保存后切换存储,删掉一些元数据,重新创建

      基于velero迁移也是个不错的方法,但是要注意别迁移实际的数据,不然也会比较慢。