將 OpenResty Edge Admin 資料庫遷移至 Kubernetes 環境
在開始遷移操作之前,請確保已根據在 Kubernetes 環境中部署 OpenResty Edge的文件指引,部署了最新版本的 OpenResty Edge。
匯出當前資料庫
請在您安裝了 Edge Admin 資料庫的機器上執行 pg_dump
命令以匯出資料庫。開啟命令列終端並執行以下指令:
/usr/local/openresty-postgresql12/bin/pg_dump or_edge_admin -C -U postgres | gzip > or_edge_admin-$(date +%F).gz
執行時,系統可能會提示您輸入密碼。
將匯出的資料庫檔案傳輸至 Kubernetes Pod
利用 kubectl cp
命令,把本地匯出的資料庫檔案傳輸到 Kubernetes Pod 中:
kubectl cp or_edge_admin-$(date +%F).gz openresty-edge/oredge-admin-database-0:/tmp/or_edge_admin-$(date +%F).gz
請注意,openresty-edge
是 OpenResty Edge 服務所在的名稱空間名稱,而 oredge-admin-database-0
是目標 Pod 的名稱。
在 Kubernetes Pod 中匯入資料庫
接下來,您需要進入 Pod 並利用 psql
命令來匯入資料庫。
首先,使用以下命令進入 Pod:
kubectl exec -it oredge-admin-database-0 -n openresty-edge -- /bin/bash
在 Pod 內部,刪除現有資料庫 or_edge_admin
中的所有初始資料(如有重要資料請提前備份):
/usr/local/openresty-postgresql12/bin/psql -U or_edge_admin -d or_edge_admin --command 'DROP SCHEMA public CASCADE'
/usr/local/openresty-postgresql12/bin/psql -U or_edge_admin -d or_edge_admin --command 'CREATE SCHEMA public'
然後,在 Pod 的命令列中,使用 psql
命令開始匯入資料:
zcat /tmp/or_edge_admin-$(date +%F).gz | /usr/local/openresty-postgresql12/bin/psql -U or_edge_admin -d or_edge_admin
耐心等待資料匯入完成。
更新 Edge Admin Database 的 Schema 至最新版
執行以下命令來升級資料庫 schema:
bash /docker-entrypoint-post.d/update-admin-db.sh
重新編譯 OpenResty Edge 配置
登入到 Edge Admin 的 Pod oredge-admin-0
:
kubectl exec -it oredge-admin-0 -n openresty-edge -- /bin/bash
執行以下命令以重新編譯配置檔案:
cd /usr/local/oredge-admin
sudo bash utils/recompile-apps.sh wildcard-http
sudo bash utils/recompile-apps.sh http
sudo bash utils/recompile-apps.sh http_proxy
sudo bash utils/recompile-apps.sh socks5_proxy
sudo bash utils/recompile-apps.sh global
sudo bash utils/recompile-apps.sh waf
sudo bash utils/recompile-apps.sh dns
sudo bash utils/recompile-apps.sh global-action
sudo bash utils/recompile-apps.sh gateway
按照上述步驟操作後,您應該已經成功完成了資料庫資料的遷移,將 OpenResty Edge Admin 資料庫整合至 Kubernetes 叢集中。