计划布景和意图

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

前提条件:

  1. 现已装置好 KubeSphere 渠道(本教程运用 KubeSphere 3.2.1、K8s 版别 1.21.5)。装置方法请参考官网:kubesphere.com.cn/docs/v3.3/
  2. 现已装置好 juiceFS-CSI 插件并且挂载好 OSS 后端、承认创立 PVC 时通过 SC 自动创立 PV 并绑定。 装置方法请参考官网 : www.juicefs.com/docs/zh/com… (以上两者缺一不可)

计划实施进程

1. 找到 KubeSphere 渠道的 Jenkins 运用的 PV

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

2. 承认现在 Local 磁盘保存的 Jenkins 途径(在 node1 节点上)

/var/openebs/local/pvc-2143c5a8-9593-4e2a-8eb5-2f3a0c98219a

3. 下载 JuiceFS 客户端

获取最新的版别号。

$ 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/jfs
  • redis:// 后边跟的是 Redis 服务的内网地址;
  • /mnt/jfs 是自定义的目录。

4. 创立新的 PVC

翻开管理后台-找到【存储】–【存储卷】–【kubesphere-devops-system】翻开【创立】

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

通过 PVC 的名字在宿主机上检查创立成果

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

5. 停止 DevOps 服务(至关重要的一步)

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

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

将 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。

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

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

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

承认服务已正常启动。

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

承认数据是否正确。

$ df- h
$ ls /挂载点

验证

创立一条新的流水线。

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案

友谊提示

  1. 现在此教程尚未通过出产环境验证,如在出产上运用请一定要做好备份在测验以便及时回滚。
  2. 搬迁后的数据不支持直接从后端介质直接检查(比如后端是 OSS),由于数据都是打散的且保存方法以 JuiceFS 格式保存,要检查需求装置 JuiceFS 客户端或者直接进入 PVC 绑定的容器中。
  3. kubesphere-GitHub 地址:github.com/kubesphere/…。
  4. JuiceFS-GitHub 地址:github.com/juicedata/j…。

本文由博客一文多发渠道 OpenWrite 发布!