iCodex

iCodex

使用Docker快速部署GoEdge 搭建自己專屬的CDN服務

image

GoEdge 是一款用於管理分佈式 CDN 邊緣節點的開源工具軟體,目的是讓使用者輕鬆地、低成本地建立 CDN/WAF 等應用。在圈內名氣挺大的,支援 x86、arm64 兩個平台,對系統的依賴性也不高,是使用者除購買商業 CDN 服務之外,自建 CDN 的不錯選擇。

GoEdge 分為免費的社區版和需要付費的商業版,商業版比社區版多了一些功能,比如邊緣計算、HTTP/3、更詳細的可訪問性監控、5 秒盾等,詳細的差別可訪問這裡了解:GoEdge CDN 專業版,但實話實說,社區版已經足夠強大了。

GoEdge 的安裝,可以參考官方的教程,這裡不做搬運和贅述,這裡介紹另外一種方法,使用 Docker 快速部署 GoEdge 管理平台(包含 API 節點)和邊緣節點。讓我們開始吧!

部署前的準備工作#

安裝 Docker#

管理平台和邊緣節點都需要先安裝 Docker,新版本的 Docker 已包含 compose 插件,因此我們只需要執行官方推薦的命令安裝即可:

curl -sSL https://get.docker.com | sh

部署管理平台#

首先編寫 docker-compose.yaml,因為將管理平台所依賴的 mysql 加進來,所以這裡使用 docker compose 的方式進行,也是方便後期遷移等管理工作。

mysql 的版本要求,官方建議使用 mysql 8,最低不低於 mysql 5.7.8,系統內存建議 4GB 以上。

首先進入你想存放 docker-compose.yaml 的路徑,比如 /opt/goedge,然後進入該路徑後創建 docker-compose.yaml,輸入以下內容:

version: "3"

networks:
  goedge:
    external: false

services:
  mysqld:
    image: mysql:8
    container_name: mysqld
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_USER=edges
      - MYSQL_PASSWORD=edges
      - MYSQL_DATABASE=edges
    networks:
      - goedge
    volumes:
      - ./data/db/mysql:/var/lib/mysql:rw
    restart: always

  edge-admin:
    image: icodex/edge-admin:1.3.3
    container_name: edge-admin
    ports:
      - 7788:7788/tcp
      - 8001:8001/tcp
    networks:
      - goedge
    volumes:
      - ./data/edge-admin/configs:/usr/local/goedge/edge-admin/configs
      - ./data/edge-api/configs:/usr/local/goedge/edge-admin/edge-api/configs
    restart: always

以上使用了 mysql 8 的鏡像,接著 edge-admin 是管理平台的鏡像。確定沒有端口衝突之後,執行命令啟動:

docker compose up -d

運行後,打開瀏覽器,輸入伺服器 IP 地址和 7788 端口號,進入安裝界面:

image

注意⚠️!因為這裡的網路類型是容器內共享的,因此在資料庫資訊填寫這裡,資料庫的地址只需要填寫 mysql 的容器名即可,比如這裡的:mysqld。資料庫名、資料庫帳號、資料庫密碼均為 edges。一直下一步就好了。

ps:如果你現在的宿主機系統裡面已經有 mysql,不想再多運行一個浪費資源,則需要考慮刪掉 docker-compose.yaml 裡的 mysql 服務,並將網路類型更改為 Host 網路類型,以方便與宿主機上的 mysql 通信,如下:

version: "3"

services:
  edge-admin:
    image: icodex/edge-admin:1.3.3
    container_name: edge-admin
    network_mode: host
    volumes:
      - ./data/edge-admin/configs:/usr/local/goedge/edge-admin/configs
      - ./data/edge-api/configs:/usr/local/goedge/edge-admin/edge-api/configs
    restart: always

docker-compose.yaml 編輯好之後,確定端口沒有衝突,就可以執行以下命令啟動整個系統了!

部署邊緣節點#

在上面的部署中,已經完成了管理平台的部署,這時可以按照官方教程添加邊緣節點的方式進行添加。也可以按以下步驟,部署一個 Docker 容器形態的邊緣節點。

這裡使用 GoEdge 的自動註冊功能,因此需要先在 GoEdge 管理界面 – 邊緣節點 – 找到你所在集群 – 集群節點 – 安裝升級 – 自動註冊,把 endpoints、clusterId、secret 三個值記錄下來。

image

然後準備一個 docker-compose.yaml,輸入以下內容,注意替換環境變數裡相應的值

version: "3"

services:
  edge-node:
    image: icodex/edge-node:1.3.3
    container_name: edge-node
    environment:
      - ENDPOINTS=http://xxx.com:8001
      - CLUSTERID=xxx
      - SECRET=xxx
    network_mode: host
    cap_add:
      - NET_ADMIN
    volumes:
      - ./data/edge-node/cache:/opt/cache
      - ./data/edge-node/configs:/usr/local/goedge/edge-node/configs
    restart: always

接著使用 docker compose 命令啟動它,很快就可以在管理平台看到這台上線的主機了。

以上,是完整部署 GoEdge 的全部步驟,非常簡單吧!

最後#

這個專案應該不算造輪子,只是我個人習慣使用 docker 進行服務的管理,docker 運行毕竟套了多一層虛擬化,因此在邊緣節點的容器的網路選擇上,建議使用 host 類型,與宿主機共享會比較好。

最後,docker 鏡像製作所需檔案我放在 github 上,可以點擊這裡訪問:https://github.com/icodex/docker-goedge

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。