容器化部署 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 -
使用指引
如在部署或使用过程中遇到任何问题,请随时与我们联系。