生产环境变更 AppSpace存储切换

真成运维 2025-7-7 15 7/7

你好,我是老成。今日分享一个运维实战案例。

背景介绍

去年24年,我搭建了一个其他人员找的开源 App 分发系统(AppSpace),供公司内部使用。最开始在一个单节点 Docker 环境部署,随着时间的推移,迁移到了 K8s 环境当中,我们 K8s 环境中,所有项目没有特殊情况存储方式全部都会走对象存储,不会走 PVC(使用对象存储,是为了便于项目的迁移)。

然而,这个 App 分发系统就是那个特殊情况,不支持内部的 Ceph 版的对象存储,要支持只能去修改代码,当时又没有人去改这个东西,于是只能先走 PVC 进行存储。

上周,我领导将这个 App 分发系统进行了代码修改,支持了内部的 Ceph 对象存储。于是我就开始实施存储方式的切换,和数据迁移(PVC->对象存储)工作。

下面将介绍,存储切换和数据迁移过程中的问题和流程。注意:以下操作均在测试环境验证通过之后,才具体变更到生产,同时本文已在生产变更实践。

官网:https://appspa.github.io/docs/developer-guide/index/

GitHub:https://github.com/appspa/app-space

数据迁移

通过 s3cmd 命令将数据目录,同步到对象存储当中

1. 单次
s3cmd sync /data s3://xxx-appspace
# 或者
s3cmd put --recursive /data s3://xxx-appspace-test

2. 批量
for i in $(ls); do
  s3cmd sync ${i} s3://xxx-appspace
done

更多 s3cmd 命令介绍,可查看这篇博客:https://blog.csdn.net/codelearning/article/details/142267161

修改数据库

1)修改我们数据库的地址,将http://appsapce-test.test.com修改为http://appspace-test.test.com/对象存储桶名称。将源下载地址,修改为新地址。

2)通过查看数据,得知只有这两个集合中保存地址信息,导出数据

不知道具体集合,可直接导出整个库数据,通过 VSCode 批量查找信息即可

生产环境变更 AppSpace存储切换

3)通过 VSCode 批量替换后再将数据导入数据库即可

生产环境变更 AppSpace存储切换

数据迁移了,App应用无法下载

1)问题现象

点击下载 App 按钮后,无反应,浏览器页面空白,好像也看不出和意识到啥问题,如图:

生产环境变更 AppSpace存储切换

2)排查步骤

排查第一步,浏览器打开 F12 开发者模式查看接口地址。

生产环境变更 AppSpace存储切换

拿到地址后,我们直接访问该地址,发现403错误,权限被拒绝访问。正常情况直接访问对象存储地址都是可以下载资源的,所以肯定是对象存储权限问题。

生产环境变更 AppSpace存储切换

3)处理方法

通过 s3cmd 命令批量开启目录下文件权限

s3cmd setacl --recursive s3://xxx-appspace-test/67b5926efe8167002406ad64/ --acl-public
生产环境变更 AppSpace存储切换

由于这里有23个目录,实现批量的话,可以写个 for 循环即可

for i in $(s3cmd la | awk '{print $2}'); do
  s3cmd setacl --recursive ${i} --acl-public
done
生产环境变更 AppSpace存储切换
生产环境变更 AppSpace存储切换

通过以上操作之后,我们服务下载功能就正常

生产环境变更 AppSpace存储切换

另外通过 S3 Browser 图形化也是可以管理,不过不推荐,因为不能批量操作。通过 s3cmd 命令,可以实现对目录进行批量操作。

生产环境变更 AppSpace存储切换

END

最后。昨天我创建了一个免费星球,叫 ”运维开发领域(免费)“,欢迎围观,交流。

星球将会比群聊更加活跃,同时包含干货内容和知识分享。

进星球可免费看,我前段时间写的付费专栏,《如何搞定博客,全流程实践指南》:https://mp.weixin.qq.com/s/3AnbRTxcNQ1wZnkKjyvNug

点击查看,免费专栏地址:https://wx.zsxq.com/group/88882812844552/topic/2852411425851221

生产环境变更 AppSpace存储切换

这篇文章有用吗?

点击星号为它评分!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位评论此文章。

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

- THE END -

真成运维

7月07日21:53

最后修改:2025年7月7日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论