容器化部署 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 時就可以選擇了。

更多:

有問題請與我們隨時溝通!