海纳云 1.1.0 → 1.3.0 版本升级文档

说明:请严格按步骤执行;如升级失败,参见「5. 失败回滚」。

⚠️ 注意事项:

  • 升级过程需要 停机维护,期间海纳云将 无法对外提供服务
  • 升级时长约为 30 分钟至 1 小时,请提前通知相关业务部门。

1. 获取升级资源

镜像

升级/回滚 SQL

下载完成后,请统一放置至预设目录,供后续脚本引用。


2. 导入镜像

2.1 导入 cloudeon 镜像(主节点)

docker load -i cloudeon-software_1.0.55.tar

2.2 导入海纳云镜像(所有运行海纳云的节点)

docker load -i hina-haishuu_1.0.46.tar

3. 升级 Cloudeon

主节点解压步骤 1 下载的 upgrade_from_1.1.0_1.3.0.tar.gz

# 解压
tar -zxvf upgrade_from_1.1.0_1.3.0.tar.gz

# 复制修正 flyway 历史的 SQL
cp -f modify_cloudeon_sql_flyway_history.sql /opt/mysql/conf/

# 执行修正 SQL(自动定位 mysql Pod)
kubectl exec -n mysql $(kubectl get po -n mysql -o jsonpath='{.items[0].metadata.name}') \
  -- mysql -h127.0.0.1 -uroot -pRoot@123 -e "source /etc/mysql/conf.d/modify_cloudeon_sql_flyway_history.sql"

编辑部署,切换 Cloudeon 镜像版本:

kubectl edit deploy cloudeon -n cloudeon

image: 行修改为新版本,例如:

image: dockerhub.baofu.com/app/cloudeon:1.0.55

kubectl edit 修改镜像截图

等待 Cloudeon 服务启动并恢复为 Ready 状态。


4. 升级海纳云应用

4.1 更新海纳云应用镜像配置(通过 SQL)

cp -f update_app_image.sql /opt/mysql/conf/

kubectl exec -n mysql $(kubectl get po -n mysql -o jsonpath='{.items[0].metadata.name}') \
  -- mysql -h127.0.0.1 -uroot -pRoot@123 -e "source /etc/mysql/conf.d/update_app_image.sql"

4.2 备份并升级数据库

强烈建议:先执行备份 SQL。

4.2.1 备份 SQL

cp -f back_hina.sql /opt/mysql/conf/

# 执行备份:生成备份表与备份数据
kubectl exec -n mysql $(kubectl get po -n mysql -o jsonpath='{.items[0].metadata.name}') \
  -- mysql -h127.0.0.1 -uroot -pRoot@123 -e "source /etc/mysql/conf.d/back_hina.sql"

4.2.2 升级 SQL

cp -f update_hina.sql /opt/mysql/conf/

# 执行海纳云升级 SQL
kubectl exec -n mysql $(kubectl get po -n mysql -o jsonpath='{.items[0].metadata.name}') \
  -- mysql -h127.0.0.1 -uroot -pRoot@123 -e "source /etc/mysql/conf.d/update_hina.sql"

4.2.3 升级 Doris 中现有项目关联的表
使用 MySQL 客户端,或者进入 Doris playgraund 中执行如下SQL

SELECT CONCAT(
    'ALTER TABLE ', table_schema, '.', table_name, ' ADD COLUMN (',
    ' `feature_value_array` ARRAY<STRING> COMMENT ''标签值(列表)'',',
    ' `feature_value_json` JSON COMMENT ''标签值(对象)'');'
)
FROM information_schema.tables
WHERE table_schema = 'h000000'
  AND (table_name LIKE 'ads_feature_%' OR table_name LIKE 'ads_history_feature_%');

得到结果如图:

依次执行结果的SQL

4.3 应用层升级(通过 Cloudeon)

  1. 删除旧版本海纳云服务,等待删除完成:
    删除海纳云服务截图

  2. 重新部署海纳云服务(将拉起新版本镜像):
    部署海纳云服务截图


5. 失败回滚

如升级失败,可执行回滚 SQL:

cp -f rollback_hina.sql /opt/mysql/conf/

# 回滚海纳云数据
kubectl exec -n mysql $(kubectl get po -n mysql -o jsonpath='{.items[0].metadata.name}') \
  -- mysql -h127.0.0.1 -uroot -pRoot@123 -e "source /etc/mysql/conf.d/rollback_hina.sql"


✅ 升级完成验证

  • 登录 Cloudeon 管理界面,确认海纳云服务运行正常、状态 Ready
  • 检查数据库版本字段是否已更新到目标版本;
  • 核实前端、后端功能均可正常访问与操作。

另外,升级提供了 虚拟事件批量导入 程序

虚拟事件模板

虚拟事件批量导入包

说明:

  1. resources/virtual-import.properties 供用户修改数据库信息和项目信息,支持热改,无需重新打包。
  2. resources/template/虚拟事件定义模板.xlsx 为模板文件,供用户录入虚拟事件数据。
  3. resources/说明.txt 为导入准备工作说明。

使用方法

解压 虚拟事件导入zip 包得到
如图

修改 resources 下文件夹配置 virtual-import.properties,放入需要导入的虚拟事件数据到 template 文件夹中。

有两种方法使用

1. 执行 resource/start.sh + <虚拟事件定义文件路径>,示例(以在 resources 目录下执行命令为例)

./start.sh ./template/虚拟事件导入_20250905.xlsx

2. 使用 java -jar 命令,示例(以在 resources 目录下执行命令为例)

java -jar ../hina-cloud-virtual-import.jar ./template/虚拟事件导入_20250905.xlsx

关于京东 SSO 免登,在 Nacos 中有对应配置,在升级完成后需要调整 ,调整配置文件 hina-cloud-base.yam

如图

其中配置项含义

jd:
  sso:
    enable: true                                       #是否开启京东SSO登录开关
    url: https://ssa.jdtest.net                        #京东SSO登录授权地址
    appKey: test-hina-cloud                            #SSO登录 APP Key
    appToken: 4e976249c97e4f5da50426f46318a4c7         #SSO登录所需的 APP Token
    autoCreateUser: true                               #SSO登录是否自动创建用户

1. 由于海纳这边开发测试在测试环境下 https://ssa.jdtest.net 调试测试没有问题,所以需要升级后调整成为京东生产环境地址。
2. 京东根据自己的需求是否开启 SSO登录是否自动创建用户,如果设置为 false,则需要提前建立与 erp 对应的用户名的用户才可正常 SSO 登录