容器化部署 OpenResty Edge 指南
本指南詳細闡述了在容器環境中部署 OpenResty Edge 的完整流程。這種部署方式適用於快速測試,不建議用於生產環境。
注意:對於生產環境部署,我們建議參考《安裝 OpenResty Edge》或《Kubernetes 部署指南》。
部署準備
環境規劃
- 為各元件分配 IP 地址(以下示例值僅供參考,請根據實際情況調整):
元件名稱 | 環境變數名 | 示例 IP |
---|---|---|
OpenResty Edge Admin 資料庫 | OREDGE_ADMIN_DB_HOST | 172.17.0.2 |
OpenResty Edge 日誌資料庫 | OREDGE_LOG_SERVER_DB_HOST | 172.17.0.3 |
OpenResty Edge 日誌服務 | OREDGE_LOG_SERVER_HOST | 172.17.0.4 |
OpenResty Edge Admin 控制檯 | OREDGE_ADMIN_HOST | 172.17.0.5 |
OpenResty Edge 節點 | OREDGE_NODE_HOST | 172.17.0.6 |
- 指定一個根目錄用於存放所有元件的配置和資料,使用環境變數
OREDGE_DATA_ROOT
表示,例如:/data/oredge。
資源獲取
從交付郵件中獲取以下資訊:
- 映象版本
OREDGE_IMAGE_VERSION
,例如:24.9.21-1
- 映象倉庫訪問憑證
OREDGE_REGISTRY_USERNAME
和OREDGE_REGISTRY_PASSWORD
- 映象版本
從 OpenResty 下載中心獲取最新的配置包:
openresty-edge-<VERSION>.tar.gz
環境變數配置(可選但推薦)
為簡化後續操作,建議配置以下環境變數(請根據實際情況調整值):
export OREDGE_IMAGE_VERSION=24.9.21-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_REGISTRY_USERNAME=oredge-registry-username
映象下載
執行以下命令以下載所需的 Docker 映象:
# 登入映象倉庫
docker login --username $OREDGE_REGISTRY_USERNAME registry.openresty.com
# OpenResty Edge Admin Database 映象
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-admin-db:$OREDGE_IMAGE_VERSION
# OpenResty Edge Log Server Database 映象
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-log-server-db:$OREDGE_IMAGE_VERSION
# OpenResty Edge Log Server 映象
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-log-server:$OREDGE_IMAGE_VERSION
# OpenResty Edge Admin 映象
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-admin:$OREDGE_IMAGE_VERSION
# OpenResty Edge Node 映象
docker pull registry.openresty.com/edge/rocky/8/openresty-edge-node:$OREDGE_IMAGE_VERSION
元件部署流程
1. 部署 Edge Admin 資料庫
這是 OpenResty Edge 的核心資料庫,儲存配置和管理資訊:
# 建立資料目錄
mkdir -p $OREDGE_DATA_ROOT/admin-db/
# 解壓配置包並獲取初始化憑據
tar xf openresty-edge-*.tar.gz && cd openresty-edge-*/
export DEFAULT_EDGE_PWD=$(grep -rs 'DEFAULT_EDGE_PWD=' | head -n 1 | awk -F"'" '{print $2}')
export DEFAULT_EDGE_ENC_PWD=$(grep -rs 'DEFAULT_EDGE_ENC_PWD=' | head -n 1 | awk -F"'" '{print $2}')
cd -
# 啟動容器
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 \
-e EDGE_ADMIN_INIT_PASSWORD="$DEFAULT_EDGE_PWD" \
-e EDGE_ADMIN_INIT_ENCODED_PASSWORD="$DEFAULT_EDGE_ENC_PWD" \
-v $OREDGE_DATA_ROOT/admin-db:/var/postgres12/ \
registry.openresty.com/edge/rocky/8/openresty-edge-admin-db:$OREDGE_IMAGE_VERSION
2. 部署 Edge Log Server 資料庫
此資料庫用於儲存日誌和監控資料:
# 建立資料目錄
mkdir -p $OREDGE_DATA_ROOT/log-server-db
# 啟動容器
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
3. 部署 Edge Log Server 服務
Log Server 負責收集和處理日誌:
# 建立配置目錄
mkdir -p $OREDGE_DATA_ROOT/log-server/custom
# 複製配置包到 custom 目錄
cp openresty-edge-*.tar.gz $OREDGE_DATA_ROOT/log-server/custom/
# 生成配置檔案
cat > $OREDGE_DATA_ROOT/log-server/custom/config.ini <<EOF
[postgresql]
host = "$OREDGE_LOG_SERVER_DB_HOST"
EOF
# 啟動容器
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
4. 部署 Edge Admin 控制檯
Admin 控制檯提供了 Web 介面用於管理 OpenResty Edge:
# 建立配置目錄
mkdir -p $OREDGE_DATA_ROOT/admin/custom
# 複製配置包到 custom 目錄
cp openresty-edge-*.tar.gz $OREDGE_DATA_ROOT/admin/custom/
# 生成配置檔案
cat > $OREDGE_DATA_ROOT/admin/custom/config.ini <<EOF
[postgresql]
host = "$OREDGE_ADMIN_DB_HOST"
[log_server]
host = "$OREDGE_LOG_SERVER_HOST"
EOF
# 放置 SSL 證書(可選)
# cp ssl.key ssl.crt $OREDGE_DATA_ROOT/admin/custom/
# 啟動容器,如遇埠衝突,請調整對映埠
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
5. 部署 Edge Node 節點
Edge Node 是實際處理流量的元件:
mkdir -p $OREDGE_DATA_ROOT/node/{custom,data}
# 複製配置包到 custom 目錄
cp openresty-edge-*.tar.gz $OREDGE_DATA_ROOT/node/custom/
# 生成配置檔案
cat > $OREDGE_DATA_ROOT/node/custom/config.ini <<EOF
[admin]
host = "$OREDGE_ADMIN_HOST"
port = 12345
[log_server]
endpoints = "https://$OREDGE_LOG_SERVER_HOST:12346"
EOF
# 啟動容器,如遇埠衝突,請調整對映埠
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
獲取 Edge Admin 控制檯訪問憑證
執行以下命令獲取初始登入資訊:
cd openresty-edge-*/
bash openresty-edge-installer.sh -a get -c default-info
cd -
使用指引
如在部署或使用過程中遇到任何問題,請隨時與我們聯絡。