容器部署的版本升级
当 HENGSHI 版本升级后,请按照如下步骤在容器上进行升级操作。
下载和导入新版本镜像。
- 从 dockerhub 获取离线镜像。
shdocker pull hengshi-sense:$TAG
- 导入离线镜像。
shwget https://download.hengshi.com/releases/hengshi-sense-xxx.tar.gz docker load -i hengshi-sense-xxx.tar.gz
容器环境中,升级过程中默认未进行数据备份操作,可根据需要自行进行数据备份操作容器环境备份与恢复
暂停服务。
shellcd single docker-compose down
根据升级版本获取 docker-compose 部署文件,配置文件可参考 部署前准备工作。
更新衡石镜像 tag。
shellcd single NEW_TAG=hengshi-sense-xxx #设置变量为新 tag sed -i -e "s/^HS_IMAGE_TAG=.*$/HS_IMAGE_TAG=${NEW_TAG}/" .env
启动服务,升级完成。
shellcd single docker-compose up -d
升级版本 >=4.0 注意事项
- 服务镜像 >= 4.0 版本开始,Metadb 默认版本为13.5,可根据需要判断是否进行升级操作
- 升级操作
- 维持现有版本
- 编辑 docker-compose.yaml 文件,将 metadb>image 配置下**${HS_IMAGE_TAG:-need_hs_image_version}**的参数修改为<4.0版本 镜像信息
注意事项:
- 5.1.x 版本 flink 已被移除,无需运行。升级后可考虑停止并清理 flink 的容器。
helm 部署的版本升级
升级过程与容器部署基本相同,同样需要注意Metadb 版本升级和数据备份 >=4.0 默认版本为13.5,可根据需要判断是否进行升级操作.
非跨大版本升级(3.6 > 4.1), 通常都是做好数据备份,然后--version 指定版本号升级即可
shell
helm upgrade -f hs-config.yaml Hengshi-Sense hengshi-charts/hengshi-sense --version 0.1.2 -n [namespace] # 要升级的 chart 版本号
以下为3.6跨多个版本升级4.1 的操作示例(重点在于 metadb 的升级,需在升级 HENGSHI-SENSE 之前操作)
- 升级 Metadb 前取消 CLUSTER_ENABLE 变量或设置为 false
shell
kubectl -n [namespace] exec -it metadb-0 -- bash
export | grep "CLUSTER_ENABLE"
unset CLUSTER_ENABLE
- 使用升级镜像 registry.hengshi.org/hengshi-metadb:upgrade
shell
# 将 metadb 中的镜像地址替换为升级镜像的地址(两处)
kubectl -n [namespace] edit statefulset.apps/metadb
# 重新拉起 pod
kubectl -n [namespace] scale statefulset.apps/metadb --replicas=0
kubectl -n [namespace] scale statefulset.apps/metadb --replicas=1
- 升级 metadb 操作
shell
kubectl -n [namespace] exec -it metadb-0 -- /bin/bash
cd /opt/hengshi
bin/hengshi-sense-bin stop metadb single ## 停止操作
bin/hengshi-sense-bin upgrade metadb single ## 升级操作
出现上面提示显示您的 metadb 数据库已经升级完成,如果失败请参考: Metadb 升级回滚
- 升级 HENGSHI-SENSE
shell
helm upgrade -f hs-config.yaml Hengshi-Sense hengshi-charts/hengshi-sense --version 1.1.7 -n [namespace] # 要升级的 chart 版本号