容器化部署 OpenResty Edge 指南

您可以跟随以下步骤,在容器环境中使用 OpenResty Edge。 但我们不建议作为生产环境使用,如需搭建生产环境,请参考《安装 OpenResty Edge》《在 Kubernetes 环境中部署 OpenResty Edge》

1. 准备

安装前您需要进行以下准备:

  • 为所有 OpenResty Edge 组件规划 IP 地址:

    • OpenResty Edge Admin Database:下文配置中用 OREDGE_ADMIN_DB_HOST 表示,示例:172.17.0.2。
    • OpenResty Edge Log Server Database:下文配置中用 OREDGE_LOG_SERVER_DB_HOST 表示,示例:172.17.0.3。
    • OpenResty Edge Log Server:下文配置中用 OREDGE_LOG_SERVER_HOST 表示,示例:172.17.0.4。
    • OpenResty Edge Admin:下文配置中用 OREDGE_ADMIN_HOST 表示,示例:172.17.0.5。
    • OpenResty Edge Node:下文配置中用 OREDGE_NODE_HOST 表示,示例:172.17.0.6。
  • 从交付邮件中获取:

    • 镜像版本,下文配置中用 OREDGE_IMAGE_VERSION 表示,例如 24.9.21-1
    • 拉取镜像所需的账号和密码,下文配置中用 REGISTRY_USERNAMEREGISTRY_PASSWORD 表示;
  • 下载中心下载 OpenResty Edge 的配置包:openresty-edge-VERSION.tar.gz

2. 下载镜像

  • 登录 Registry

    sudo docker login --username=REGISTRY_USERNAME registry.openresty.com
    # 输入密码:REGISTRY_PASSWORD
    
  • 下载镜像(请替换其中的 OREDGE_IMAGE_VERSION 为实际版本号,例如 24.9.21-1

    # 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
    

3. 安装 OpenResty Edge Admin Database

  • 在宿主机新建挂载到容器中的文件夹,后续配置中用 OREDGE_ADMIN_DB_PATH 表示,例如 /root/oredge-admin-db/postgres12/

  • 获取用于初始化 Edge Admin 的密码 DEFAULT_EDGE_PWDDEFAULT_EDGE_ENC_PWD

    # 解压 openresty edge 配置包
    tar xf openresty-edge-VERSION.tar.gz
    # 进入解压后的目录
    cd openresty-edge-VERSION
    # 获取 DEFAULT_EDGE_PWD
    grep -rs 'DEFAULT_EDGE_PWD=' | head -n 1 | awk -F "'" '{print $2}'
    # 获取 DEFAULT_EDGE_ENC_PWD
    grep -rs 'DEFAULT_EDGE_ENC_PWD=' | head -n 1 | awk -F "'" '{print $2}'
    
  • 启动容器

docker run -d --name openresty-edge-admin-database                  \
    --ip OREDGE_ADMIN_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_ADMIN_DB_PATH:/var/postgres12/                        \
    registry.openresty.com/edge/rocky/8/openresty-edge-admin-db:OREDGE_IMAGE_VERSION

请替换命令中的 OREDGE_ADMIN_HOSTOREDGE_ADMIN_DB_PATHDEFAULT_EDGE_PWDDEFAULT_EDGE_ENC_PWDOREDGE_IMAGE_VERSION 为实际的值。

4. 安装 OpenResty Edge Log Server Database

  • 在宿主机新建挂载到容器中的文件夹,后续配置中用 OREDGE_LOG_SERVER_DB_PATH 表示,例如 /root/oredge-log-server-db/postgres12/

  • 启动容器(请替换其中的 OREDGE_IMAGE_VERSION 为实际版本号,例如 24.9.21-1

docker run -d --name openresty-edge-log-server-database                 \
    --ip OREDGE_LOG_SERVER_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_LOG_SERVER_DB_PATH:/var/postgres12/                       \
    registry.openresty.com/edge/rocky/8/openresty-edge-log-server-db:OREDGE_IMAGE_VERSION

请替换命令中的 OREDGE_LOG_SERVER_HOSTOREDGE_LOG_SERVER_DB_PATHOREDGE_IMAGE_VERSION 为实际的值。

5. 启动 OpenResty Edge Log Server 容器

  • 在宿主机新建挂载到容器中的文件夹,后续配置中用 OREDGE_LOG_SERVER_CUSTOM_PATH 表示,例如 /root/oredge-log-server/custom/

  • 拷贝 openresty-edge-VERSION.tar.gz/root/oredge-log-server/custom/

  • 生成 Edge Node 的配置文件 /root/oredge-log-server/custom/config.ini:(请替换配置中的 OREDGE_LOG_SERVER_DB_HOST 成实际的值)

[postgresql]
host = "OREDGE_LOG_SERVER_DB_HOST"
  • 启动容器(请替换其中的 OREDGE_IMAGE_VERSION 为实际版本号,例如 24.9.21-1
docker run -d --name openresty-edge-log-server                              \
    --ip OREDGE_LOG_SERVER_HOST                                             \
    -v OREDGE_LOG_SERVER_CUSTOM_PATH:/usr/local/oredge-log-server/custom/   \
    registry.openresty.com/edge/rocky/8/openresty-edge-log-server:OREDGE_IMAGE_VERSION

5. 启动 OpenResty Edge Admin 容器

  • 在宿主机新建挂载到容器中的文件夹,后续配置中用 OREDGE_ADMIN_CUSTOM_PATH 表示,例如 /root/oredge-admin/custom/

  • 拷贝 openresty-edge-VERSION.tar.gz/root/oredge-admin/custom/

  • 生成 Edge Node 的配置文件 /root/oredge-admin/custom/config.ini:(请替换配置中的 OREDGE_ADMIN_DB_HOSTOREDGE_LOG_SERVER_HOST 成实际的值)

[postgresql]
host = "OREDGE_ADMIN_DB_HOST"

[log_server]
host = "OREDGE_LOG_SERVER_HOST"
  • 配置 SSL 证书及秘钥(可选)

复制证书及秘钥到 /root/oredge-admin/custom/ 目录中,名称分别为 ssl.keyssl.crt

  • 启动容器(请替换其中的 OREDGE_IMAGE_VERSION 为实际版本号,例如 24.9.21-1
docker run -d -p 443:443 --name openresty-edge-admin                    \
    --ip OREDGE_ADMIN_HOST                                              \
    -v OREDGE_ADMIN_CUSTOM_PATH:/usr/local/oredge-admin/custom/         \
    registry.openresty.com/edge/rocky/8/openresty-edge-admin:OREDGE_IMAGE_VERSION

6. 启动 OpenResty Edge Node 容器

  • 在宿主机新建挂载到容器中的文件夹,后续配置中用 OREDGE_NODE_CUSTOM_PATH 表示,例如 /root/oredge-node/custom/

  • 拷贝 openresty-edge-VERSION.tar.gz/root/oredge-node/custom/

  • 生成 Edge Node 的配置文件 /root/oredge-node/custom/config.ini:(请替换配置中的 OREDGE_ADMIN_HOSTOREDGE_LOG_SERVER_HOST 成实际的值)

[admin]
host = "OREDGE_ADMIN_HOST"
port = 12345

[log_server]
endpoints = "https://OREDGE_LOG_SERVER_HOST:12346"
  • 启动容器(请替换其中的 OREDGE_IMAGE_VERSION 为实际版本号,例如 24.9.21-1

如果您希望在容器被销毁后,新容器可以继承旧容器的配置,可以把数据目录也挂载出来,后续配置中用 OREDGE_NODE_DATA_PATH 表示,假设为 /root/oredge-node/data/。


docker run -d -p 80:80 -p 443:443 --name openresty-edge-node    \
    --ip OREDGE_NODE_HOST                                       \
    -v OREDGE_NODE_CUSTOM_PATH:/usr/local/oredge-node/custom/   \
    -v OREDGE_NODE_DATA_PATH:/usr/local/oredge-node/data/       \
    registry.openresty.com/edge/rocky/8/openresty-edge-node:OREDGE_IMAGE_VERSION

7. 获取登录 OpenResty Edge Admin 控制台的账号信息

```bash
# 解压 openresty edge 配置包
tar xf openresty-edge-VERSION.tar.gz
# 进入解压后的目录
cd openresty-edge-VERSION
# 获取登录信息
bash openresty-edge-installer.sh -a get -c default-info
```

8. 开始使用

  1. 登录 Edge Admin 网站:

    网址:https://OREDGE_ADMIN_HOST

    如果您正在试用 Edge,则 Edge Admin 的 URL 和账号密码将随试用邮件发送。

    对于试用版,Edge Admin 是部署在我们的机器上,而对于未来购买的正式版,我们会提供安装包供自主部署。

  2. 登录进去之后,进入“网关集群”选项卡(或者 Gateway Clusters 选项卡,取决于你当前界面语言的设置)。 在那里你会看到新部署的节点发的“加入请求”。你根据“加入请求”中的信息,确认是你自己的节点之后,再点 Approve。 Approve 的过程即是将新节点加入某一个网关集群的过程。因此在 Approve 之前你需要先在界面上创建一个“集群”,然后 Approve 时就可以选择了。

更多:

有问题请与我们随时沟通!