容器化 OpenResty Edge 升级指南
本指南详细说明如何升级在容器环境中部署的 OpenResty Edge 各组件。升级过程需要按照特定顺序进行,以确保系统稳定性和数据完整性。
请注意:对于生产环境,我们不建议使用容器进行部署,容器部署的环境,升级时业务会中断。
升级前准备
1. 环境变量配置
设置以下环境变量(请根据实际情况调整):
export OREDGE_IMAGE_VERSION=25.9.17-1
export OREDGE_ADMIN_DB_HOST=172.17.0.2
export OREDGE_LOG_SERVER_DB_HOST=172.17.0.3
export OREDGE_LOG_SERVER_HOST=172.17.0.4
export OREDGE_ADMIN_HOST=172.17.0.5
export OREDGE_NODE_HOST=172.17.0.6
export OREDGE_DATA_ROOT=/data/oredge
export OREDGE_DATA_BACKUP_ROOT=/data/oredge-backup
export OREDGE_REGISTRY_USERNAME=oredge-registry-username
2. 拉取新版本镜像
提前拉取所有镜像,可以加快后续升级速度,减少服务停机时间:
# 登录镜像仓库
docker login --username $OREDGE_REGISTRY_USERNAME registry.openresty.com.cn
# 拉取所有组件镜像
docker pull registry.openresty.com.cn/edge/rocky/8/openresty-edge-admin-db:$OREDGE_IMAGE_VERSION
docker pull registry.openresty.com.cn/edge/rocky/8/openresty-edge-log-server-db:$OREDGE_IMAGE_VERSION
docker pull registry.openresty.com.cn/edge/rocky/8/openresty-edge-log-server:$OREDGE_IMAGE_VERSION
docker pull registry.openresty.com.cn/edge/rocky/8/openresty-edge-admin:$OREDGE_IMAGE_VERSION
docker pull registry.openresty.com.cn/edge/rocky/8/openresty-edge-node:$OREDGE_IMAGE_VERSION
3. 备份数据
重要提示: 升级前务必备份所有数据,以防万一需要回滚。 备份数据前,请检查您的硬盘空间是否足够。
备份数据库
# 备份 Admin 数据库
docker exec openresty-edge-admin-database \
/usr/local/openresty-postgresql12/bin/pg_dump or_edge_admin -C -Upostgres \
| gzip > or_edge_admin-$(date +%F).sql.gz
# 备份 Log Server 数据库(可选)
docker exec openresty-edge-log-server-database \
/usr/local/openresty-postgresql12/bin/pg_dump or_edge_log_server -C -Upostgres \
| gzip > or_edge_log_server-$(date +%F).sql.gz
备份配置文件
# 备份配置目录
cp -r $OREDGE_DATA_ROOT $OREDGE_DATA_BACKUP_ROOT
升级顺序说明
为确保升级过程顺利,请严格按照以下顺序进行:
- Log Server DB → 2. Log Server → 3. Node → 4. Admin DB → 5. Admin
这个顺序可以最大程度减少对业务的影响,并确保组件间的兼容性。
组件升级步骤
1. 升级 Log Server Database
# 停止并删除旧容器
docker stop openresty-edge-log-server-database
docker rm openresty-edge-log-server-database
# 启动新版本容器
docker run -d --name openresty-edge-log-server-database \
--ip $OREDGE_LOG_SERVER_DB_HOST \
-e 'POSTGRES_DB=or_edge_log_server' \
-e 'POSTGRES_USER=or_edge_log_server' \
-e 'PGUSER=or_edge_log_server' \
-e 'POSTGRES_HOST_AUTH_METHOD=trust' \
-e 'POSTGRES_CONF_ENABLE_TIMESCALE=true' \
-v $OREDGE_DATA_ROOT/log-server-db:/var/postgres12/ \
registry.openresty.com.cn/edge/rocky/8/openresty-edge-log-server-db:$OREDGE_IMAGE_VERSION
# 验证容器状态
docker logs openresty-edge-log-server-database
2. 升级 Log Server
# 停止并删除旧容器
docker stop openresty-edge-log-server
docker rm openresty-edge-log-server
# 启动新版本容器
docker run -d --name openresty-edge-log-server \
--ip $OREDGE_LOG_SERVER_HOST \
-v $OREDGE_DATA_ROOT/log-server/custom/:/usr/local/oredge-log-server/custom/ \
registry.openresty.com.cn/edge/rocky/8/openresty-edge-log-server:$OREDGE_IMAGE_VERSION
# 验证容器状态
docker logs openresty-edge-log-server
3. 升级 Edge Node
# 停止并删除旧容器
docker stop openresty-edge-node
docker rm openresty-edge-node
# 启动新版本容器(注意:如遇端口冲突,请调整映射端口)
docker run -d -p 80:80 -p 443:443 --name openresty-edge-node \
--ip $OREDGE_NODE_HOST \
-v $OREDGE_DATA_ROOT/node/custom:/usr/local/oredge-node/custom \
-v $OREDGE_DATA_ROOT/node/data:/usr/local/oredge-node/data \
registry.openresty.com.cn/edge/rocky/8/openresty-edge-node:$OREDGE_IMAGE_VERSION
# 验证容器状态
docker logs openresty-edge-node
4. 升级 Admin Database
# 停止并删除旧容器
docker stop openresty-edge-admin-database
docker rm openresty-edge-admin-database
# 启动新版本容器
docker run -d --name openresty-edge-admin-database \
--ip $OREDGE_ADMIN_DB_HOST \
-e POSTGRES_DB=or_edge_admin \
-e POSTGRES_USER=or_edge_admin \
-e PGUSER=or_edge_admin \
-e POSTGRES_HOST_AUTH_METHOD=trust \
-e POSTGRES_CONF_ENABLE_TIMESCALE=true \
-v $OREDGE_DATA_ROOT/admin-db:/var/postgres12/ \
registry.openresty.com.cn/edge/rocky/8/openresty-edge-admin-db:$OREDGE_IMAGE_VERSION
# 验证容器状态
docker logs openresty-edge-admin-database
5. 升级 Admin 控制台
# 停止并删除旧容器
docker stop openresty-edge-admin
docker rm openresty-edge-admin
# 启动新版本容器(注意:如遇端口冲突,请调整映射端口)
docker run -d -p 443:443 --name openresty-edge-admin \
--ip $OREDGE_ADMIN_HOST \
-v $OREDGE_DATA_ROOT/admin/custom:/usr/local/oredge-admin/custom/ \
registry.openresty.com.cn/edge/rocky/8/openresty-edge-admin:$OREDGE_IMAGE_VERSION
# 验证容器状态
docker logs openresty-edge-admin
6. 重新编译配置
您可以参考此文档,创建升级任务,并跳过前面的升级步骤,仅进行重编译相关的步骤:https://doc.openresty.com.cn/cn/edge/edge-admin/upgrade/
升级后验证
1. 检查所有容器状态
docker ps -a | grep openresty-edge
确保所有容器都处于 Up 状态。
2. 检查服务状态
# 检查 Admin 控制台
curl -k https://$OREDGE_ADMIN_HOST/
# 检查 Node
curl http://$OREDGE_NODE_HOST/
3. 登录 Admin 控制台验证
- 使用浏览器访问:
https://<OREDGE_ADMIN_HOST> - 登录并检查各项功能是否正常
- 查看【网关集群】页面,确认网关服务器状态正常
- 检查日志和监控数据是否正常收集
4. 查看版本信息
在 Admin 控制台的【关于】页面确认版本已更新为目标版本。
如在升级过程中遇到任何问题,请随时与我们联系。