跳到主要内容

版本升级操作手册

最后 更新

v1.4.x~1.5.x 升级 1.6.0

本指南提供了关于软件升级的详细步骤,确保在升级过程中保持系统的稳定性和数据的完整性。本次升级包括功能优化、性能提升及安全修复,请按照以下步骤执行升级。

重要声明

  • 升级前请务必备份数据(数据库、配置文件等)。
  • 检查当前运行版本,确保符合升级要求。
  • 阅读升级变更日志,了解新版本的更新内容和兼容性调整。

⚠️破坏性变更

  • 使用 PV 替换 HostPath 持久化方式,提高可维护性。如果您创建或修改过工作流,建议备份工作流后再升级,否则工作流数据会重置。
  • 数据持久化变更:Grafana 和 apo-backend 数据库默认使用 PostgreSQL。
  • Helm Charts 配置变量变更:工作流对应 baseurl 中的固定端口优化为可编辑端口,升级时请修改 values 文件中对应变量。

APO Backend 数据库升级操作

注意

⚠️注意:本次升级日志仓库信息内容将不会随本操作迁移,,请注意保存手动迁移自定义参数

在版本升级前

  1. 在本地创建数据迁移脚本 dump2pxql.sh,脚本内容如下
#!/bin/bash

sqlite3 database/database-apo.db .dump > dump2pxql.sql

sed -i 's/`/"/g' dump2pxql.sql
sed -i '/BEGIN TRANSACTION;/a\UPDATE pg_cast SET castcontext='\''a'\'' WHERE castsource ='\''integer'\''::regtype AND casttarget='\''boolean'\''::regtype;' dump2pxql.sql
sed -i -r 's/INSERT INTO user /INSERT INTO "user" /g' dump2pxql.sql
sed -i -r '/sqlite_sequence|PRAGMA|CREATE INDEX|CREATE UNIQUE INDEX/d' dump2pxql.sql
sed -i -r "/logtableinfo/d" dump2pxql.sql
sed -i -r 's/^CREATE TABLE "([^"]+)" .*$/ALTER TABLE "\1" DISABLE TRIGGER ALL;\nTRUNCATE TABLE "\1" CASCADE;/g' dump2pxql.sql
awk '!seen[$3]++ && /DISABLE TRIGGER ALL/ {print "ALTER TABLE " $3 " ENABLE TRIGGER ALL;"}' dump2pxql.sql > enable_fk.sql
sed -i '/COMMIT;/e cat enable_fk.sql' dump2pxql.sql
rm enable_fk.sql

  1. 执行脚本,会生成一个dump2pxql.sql
kubectl exec -i apo-backend-xxxxxx -n apo -- bash < dump2pxql.sh  > dump2pxql.sql
  1. (可选)如果您编辑过告警规则,请执行本步骤,生成alertRule-backup.yaml
kubectl get cm apo-victoria-metrics-alert-server-alert-rules-config apo-alertmanager-config -n apo -o yaml > alertRule-backup.yaml

版本升级

注意

⚠️注意:弃用hostpath,部分部署参数变更,请及时调整

# 更新 helm 仓库获取最新安装包
helm repo update apo
# 这里upgrade使用的参数需要参考安装时的参数进行调整,若不定义则使用自带默认值;
# 使用--set的方式安装的参数同理
helm upgrade apo apo -n apo -f apo-values.yaml

apo-values.yaml参考模版

global:
# change:baseURL需要指定端口
baseURL: "http://192.168.1.111:31364"
image:
pullPolicy: "Always"
repository: "registry.cn-hangzhou.aliyuncs.com/kindlingx"
eeRepository: "registry.cn-hangzhou.aliyuncs.com/kindlingx"
# change:使用pv进行持久化,无需使用 nodeSelector 指定节点,无需指定hostpath路径
# change:所有PV持久化使用一个参数配置
persistence:
enabled: true
# 开启探针部署
apo-one-agent:
enabled: true

版本升级后

  1. 执行命令导入apo_backend数据库数据。
kubectl exec -i apo-postgres-0 -n apo  -- psql -d apo_backend < <(cat dump2pxql.sql)
  1. (可选)如果您编辑过告警规则,请执行本步骤,导入alertRule-backup.yaml
kubectl apply -f alertRule-backup.yaml
  1. 进入平台确认用户等数据已正常迁移