SonarQube 从 9.9.5.1 升级到 2025.1.0 指南(Alauda Build of SonarQube Operator 版本 2025.1.z)
目录
Overview前提条件升级步骤1. 停止旧版本实例部署2. 配置新版本实例2.1 数据库配置2.2 存储配置2.3 网络配置2.4 其他配置3. 手动执行数据结构迁移4. 验证升级结果5. 清理工作参考文档Overview
本文档介绍如何将 SonarQube 从版本 9.9.5.1(9.9.6) 升级到 2025.1.0。由于此次升级涉及 operator 4.0 版本的变更,现有 SonarQube 实例需要迁移至新版本 operator。
- 数据库越大,迁移时间越长。
- 存储性能也会影响迁移速度——推荐使用 TopoLVM 以获得更佳性能。
示例:
- SonarQube 实例:574 个项目;PostgreSQL PVC 使用量 87 Gi;迁移时间约 1 小时
前提条件
- 集群中已安装新版本 operator(sonarqube-ce-operator)
- 确保系统资源充足以支持升级
- 使用产品功能将 SonarQube 升级至版本 9.9.5.1
- 按照备份文档完成完整数据备份
升级步骤
1. 停止旧版本实例部署
2. 配置新版本实例
2.1 数据库配置
注意:SonarQube 9.9.5 支持 PG 版本 11-15,SonarQube 2025.1.0 支持 PG 版本 13-17。若需迁移至新 PG 版本,请参考官方 PG 文档
旧版本 SonarQube 使用的 PG 信息记录在 SonarQube 实例的 spec.database.secretName 中。
使用上述命令获取 secretName 后,再执行
获取 secret 信息,内容示例如下:
-
按照备份文档完成完整数据备份
-
为新 SonarQube 实例创建新的 PG 数据库
建议为新版本部署创建新的数据库,避免污染旧数据库,确保旧 SonarQube 仍能正常运行
-
按照备份文档进行数据迁移
-
创建新的数据库 secret,新版本 secret 只需存储密码:
-
创建新的 SonarQube 实例配置,填写数据库连接信息,连接至新的 PG 实例
2.2 存储配置
根据旧 SonarQube 实例使用的存储类型选择对应配置:
使用 StorageClass:
使用已有 PVC 部署新实例
使用已有 PVC:
使用以下命令获取旧 SonarQube 版本使用的 PVC 名称
使用 HostPath:
注意:新旧版本 HostPath 所在节点必须保持一致。path 需在旧版本路径基础上添加 portal 目录。例如,旧版本路径为 /sonarqube/,新版本路径应为 /sonarqube/portal/
2.3 网络配置
由于旧版本实例尚未清理,新版本网络配置不能与旧版本相同(即 ingress 不能使用相同域名,nodePort 不能使用相同端口),否则会导致冲突。暂时使用其他地址,升级完成后清理旧版本实例,再修改访问地址。
使用以下命令获取旧 SonarQube 版本使用的网络类型
Ingress 配置:
NodePort 配置:
配置 spec.externalURL:
2.4 其他配置
- 保留插件:新版本需保留旧版本插件,添加配置 spec.helmValues.plugins.deleteDefaultPlugins 为 false
- SSO 配置迁移:根据部署文档:SSO 配置重新配置
- 资源配置迁移:根据旧实例 spec.resourceAssign 配置新实例的 spec.helmValues.resources
- helmValues 配置迁移:旧实例中大部分 helmValues 数据可直接迁移至新实例的 helmValues,例如 spec.helmValues.jvmOpts 可直接迁移
新版本完整 YAML 示例:
3. 手动执行数据结构迁移
- 请提前备份旧版本数据。
- 完成设置后实例才会变为 ready 状态。
访问 new-sonar-url/setup 并按照提示操作
4. 验证升级结果
检查以下内容以确认升级成功:
- 所有项目数据完整
- 用户账号及权限正确
- 插件状态正常(部分插件可能需重新安装)
- 历史分析数据可访问
5. 清理工作
- 确认新实例运行稳定后,可删除旧实例
- 调整网络配置,使其与原配置保持一致