KubeSphere 自发布以来已有 2 年之久,从 2.1.0 版本至目前最新版本 3.3。开发人员的编译构建都基于环境平台的 DevOps 功能(底层是 jenkins)实现,如果 DevOps 项目较多产生的流水线记录数据也会比较多,记录的数据存储方式默认是基于 Openebs 去做的,存储介质依赖于 ECS 宿主机 local 本地磁盘的风险是比较大的考虑到宿主机硬盘的不可靠性,随时会发生宕机导致流水线记录数据丢失造成严重影响。本教程经过本地研发平台测试通过了使用开源项目 juiceFS-CSI 且后端依托 OSS 作为后端存储实现数据迁移的检验。
(以上两者缺一不可)

/var/openebs/local/pvc-2143c5a8-9593-4e2a-8eb5-2f3a0c98219a获取最新的版本号。
$ JFS_LATEST_TAG=$(curl -s https://api.github.com/repos/juicedata/juicefs/releases/latest | grep 'tag_name' | cut -d '"' -f 4 | tr -d 'v')下载客户端到当前目录。
$ wget "https://github.com/juicedata/juicefs/releases/download/v${JFS_LATEST_TAG}/juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz"解压安装包。
$ tar -zxf "juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz"安装客户端。
$ install juicefs /usr/local/bin挂载 JuiceFS。
$ juicefs mount -d redis://10.233.106.62:6379/1 /mnt/jfsredis:// 后面跟的是 Redis 服务的内网地址;/mnt/jfs 是自定义的目录。打开管理后台-找到【存储】--【存储卷】--【kubesphere-devops-system】打开【创建】




通过 PVC 的名字在宿主机上查看创建结果

找到 devops-jenkins 的服务将副本数降为 0。

将 Local 本地对应的 devops-jenkins 的数据拷贝至刚才创建新的 PVC 里面(等待时间较长)。
注意:拷贝的时候建议是写目录的绝对路径。
$ cp -r /var/openebs/local/pvc-a2e60bcb-440e-4820-9330-921584bbabf3/* /mnt/jfs/pvc-bf8f2f7c-cfd1-45fd-94c8-39726aa364a5/确认数据已达到目的数据 PVC 后替换 devops-jenkins 数据参数将原有 PVC 解除绑定,绑定新的 PVC。

找到原有的存储卷进行修改绑定。


确认服务已正常启动。

确认数据是否正确。
$ df- h
$ ls /挂载点创建一条新的流水线。




本文由博客一文多发平台 OpenWrite 发布!