容器化 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 控制檯的【關於】頁面確認版本已更新為目標版本。
如在升級過程中遇到任何問題,請隨時與我們聯絡。