Containerized OpenResty Edge Upgrade Guide
This guide provides detailed instructions on how to upgrade OpenResty Edge components deployed in a containerized environment. The upgrade process must follow a specific sequence to ensure system stability and data integrity.
Please note: For production environments, we do not recommend using container-based deployment, as upgrades in containerized environments will cause business interruptions.
Pre-Upgrade Preparation
1. Environment Variable Configuration
Set the following environment variables (adjust according to your actual situation):
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. Pull New Version Images
Pull all images in advance to speed up the subsequent upgrade process and reduce service downtime:
# Login to the image registry
docker login --username $OREDGE_REGISTRY_USERNAME registry.openresty.com
# Pull all component images
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-admin-db:$OREDGE_IMAGE_VERSION
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-log-server-db:$OREDGE_IMAGE_VERSION
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-log-server:$OREDGE_IMAGE_VERSION
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-admin:$OREDGE_IMAGE_VERSION
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-node:$OREDGE_IMAGE_VERSION
3. Backup Data
Important Note: Be sure to backup all data before upgrading in case a rollback is needed. Before backing up data, please check if you have sufficient disk space.
Backup Databases
# Backup Admin database
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
# Backup Log Server database (optional)
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
Backup Configuration Files
# Backup configuration directories
cp -r $OREDGE_DATA_ROOT $OREDGE_DATA_BACKUP_ROOT
Upgrade Sequence
To ensure a smooth upgrade process, please strictly follow this sequence:
- Log Server DB → 2. Log Server → 3. Node → 4. Admin DB → 5. Admin
This sequence minimizes business impact and ensures compatibility between components.
Component Upgrade Steps
1. Upgrade Log Server Database
# Stop and remove old container
docker stop openresty-edge-log-server-database
docker rm openresty-edge-log-server-database
# Start new version container
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/edge/rocky/8/openresty-edge-log-server-db:$OREDGE_IMAGE_VERSION
# Verify container status
docker logs openresty-edge-log-server-database
2. Upgrade Log Server
# Stop and remove old container
docker stop openresty-edge-log-server
docker rm openresty-edge-log-server
# Start new version container
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/edge/rocky/8/openresty-edge-log-server:$OREDGE_IMAGE_VERSION
# Verify container status
docker logs openresty-edge-log-server
3. Upgrade Edge Node
# Stop and remove old container
docker stop openresty-edge-node
docker rm openresty-edge-node
# Start new version container (Note: adjust port mappings if there are conflicts)
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/edge/rocky/8/openresty-edge-node:$OREDGE_IMAGE_VERSION
# Verify container status
docker logs openresty-edge-node
4. Upgrade Admin Database
# Stop and remove old container
docker stop openresty-edge-admin-database
docker rm openresty-edge-admin-database
# Start new version container
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/edge/rocky/8/openresty-edge-admin-db:$OREDGE_IMAGE_VERSION
# Verify container status
docker logs openresty-edge-admin-database
5. Upgrade Admin Console
# Stop and remove old container
docker stop openresty-edge-admin
docker rm openresty-edge-admin
# Start new version container (Note: adjust port mappings if there are conflicts)
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/edge/rocky/8/openresty-edge-admin:$OREDGE_IMAGE_VERSION
# Verify container status
docker logs openresty-edge-admin
6. Recompile Configuration
You can refer to this document to create an upgrade task and skip the previous upgrade steps, performing only the recompilation-related steps: https://doc.openresty.com/en/edge/edge-admin/upgrade/
Post-Upgrade Verification
1. Check All Container Status
docker ps -a | grep openresty-edge
Ensure all containers are in the Up state.
2. Check Service Status
# Check Admin console
curl -k https://$OREDGE_ADMIN_HOST/
# Check Node
curl http://$OREDGE_NODE_HOST/
3. Login to Admin Console for Verification
- Access via browser:
https://<OREDGE_ADMIN_HOST> - Login and verify all functions are working properly
- Check the [Gateway Cluster] page to confirm gateway server status is normal
- Verify logs and monitoring data are being collected properly
4. Check Version Information
Confirm the version has been updated to the target version on the [About] page in the Admin console.
If you encounter any issues during the upgrade process, please feel free to contact us.