幾種部署Goku API Gateway的方式,最快一分鐘可使用上網關

  • 2019 年 11 月 8 日
  • 筆記

本文將介紹幾種部署Goku API Gateway的方式,最快一分鐘可使用上為網關,詳情請看全文。

什麼是Goku API Gateway?

Goku API Gateway (中文名:悟空 API 網關)是一個基於 Golang 開發的運行在企業系統服務邊界上的微服務網關。當您構建網站、App、IOT甚至是開放API交易時,Goku API Gateway 能夠幫你將內部系統中重複的組件抽取出來並放置在Goku上運行,如進行用戶授權、訪問控制、防火牆、數據轉換等;並且Goku 提供服務編排的功能,讓企業可以快速從各類服務上獲取需要的數據,對業務實現快速響應。

Goku API Gateway 的社區版本(CE)擁有完善的使用指南和二次開發指南,程式碼使用純 Go 語言編寫,擁有良好的性能和擴展性,並且內置的插件系統能夠讓企業針對自身業務進行訂製開發。使用 Goku API Gateway 能讓業務開發團隊更加專註地實現業務。

一套完整的 Goku API Gateway 由一個 控制台若干個 網關節點 組成。節點通過IP地址註冊在控制台中,控制台內的配置項會對所有節點生效。控制台用於配置網關的運行資訊,例如訪問策略、轉發的API資訊等等;節點用於實際的轉發。當控制台上發布了最新的配置,所有節點都會主動更新自己的運行配置;在控制台發布的配置支援版本管理,可以手動發布和回滾。

Goku API Gateway支援管理多個網關節點的集群,實現讓用戶訪問不同的集群從而訪問不同的服務地址的目的。

下面是以兩個DC(Data Center)為例的部署架構簡圖:
在這裡插入圖片描述
Goku的網關節點除了能夠直接獲取控制台的配置外,也支援採用直接讀取配置文件的方式來使用。配置文件可以通過EOLINKER 官方提供的線上控制台來導出,線上控制台可讓用戶方便修改配置,修改完後導出配置文件,放到節點的伺服器上即可。

線上控制台地址:http://goku-console.eolinker.com

使用線上控制台的話無法區分不同集群,如需使用更強功能建議還是部署自己的私有雲控制台。

本文給出幾種Goku API Gateway的部署方式:

一、節點docker+線上控制台

二、節點docker+線上控制台Docker

三、使用安裝包直接安裝

部署安裝時需要用到的鏈接:

一、節點Docker+線上控制台

Goku API Gateway提供節點Docker和控制台Docker,最快的方式就是僅部署節點Docker,然後通過線上控制台來配置網關資訊,配置完成後導出文件並上傳到節點伺服器,最後啟動節點Docker。

使用步驟

1、配置完畢後,在線上控制台的首頁導出配置:
在這裡插入圖片描述
2、將配置上傳到伺服器,啟動docker:

docker run -dt -p {轉發埠號}:6689   -v {日誌掛載地址}:/app/goku-ce/node/work   -v {配置文件地址}:/app/goku-ce/node/work/goku-node.json   eolinker/goku-api-gateway-ce-node

完整配置示例如下:

docker run -dt -p 6689:6689   -v /app/goku-ce/node/work:/app/goku-ce/node/work   -v /app/goku-ce/node/versionConfig_b14a1af4-b961-4dfb-8bfe-d4d157dd651e.json:/app/goku-ce/node/work/goku-node.json   eolinker/goku-api-gateway-ce-node

用戶通過網關訪問API地址為:{{節點IP:埠}}/{{轉發URL}} 。

二、節點Docker+控制台Docker

(一)部署控制台

1、 創建goku-ce專屬網路

docker network create --driver bridge --subnet=172.18.12.0/24 --gateway=172.18.12.1 goku-ce

2、運行控制台程式

docker run -dt -p {瀏覽器訪問埠號}:7000   -v {sqlite資料庫掛載地址}:/app/goku-ce/console/work   -e GOKU_ADMIN_PASSWORD={控制台admin密碼}   --network=goku-ce   --ip 172.18.12.2   --name goku-ce-console   eolinker/goku-api-gateway-ce-console

完整示例啟動如下:

docker run -dt -p 7000:7000   -v /app/goku-ce/work:/app/goku-ce/console/work   -e GOKU_ADMIN_PASSWORD=123456   --network=goku-ce   --ip 172.18.12.2   --name goku-ce-console   eolinker/goku-api-gateway-ce-console

3、 登錄控制台

打開瀏覽器,輸入 域名/IP+瀏覽器訪問埠號,進入控制台頁面,輸入用戶名(admin)及密碼(啟動設置的admin密碼)進行登錄:
在這裡插入圖片描述

(二)部署網關節點

1、進入控制台,新建節點

節點IP需要和啟動節點docker容器時綁定的IP 一致:
在這裡插入圖片描述
點擊查看 新建節點詳細教程

2、在控制台生成並發布配置

發布配置後,節點會讀取控制台的最新配置來運行。

點擊查看 發布配置的教程鏈接

3、啟動節點docker容器

docker run -dt -p {轉發埠號}:6689   --network goku-ce   --ip {節點IP}   -v {日誌掛載地址}:/app/goku-ce/node/work   -e GOKU_ADMIN_ADDRESS={控制台IP}:7005   eolinker/goku-api-gateway-ce-node

完整示例如下:

docker run -dt -p 6689:6689   --network goku-ce   --ip 172.18.12.3   -v /app/goku-ce/work:/app/goku-ce/node/work   -e GOKU_ADMIN_ADDRESS=172.18.12.2:7005   eolinker/goku-api-gateway-ce-node

4、查看節點運行狀態

進入節點管理頁面,若節點的狀態顯示為運行中,則節點正常啟動:
在這裡插入圖片描述

三、通過安裝包直接部署

安裝準備:到Github上下載最新的Release包。

項目地址:https://github.com/eolinker/goku-api-gateway

(一)安裝控制台

1、安裝命令:

mkdir -p {install dir}
mv console-{version}.tar.gz {tmp}/
cd {tmp}/
tar -xzf console-{version}.tar.gz
cd console-{version} && ./install.sh {install dir}
cd {install dir}

2、首次安裝進入{install dir}/console/config文件夾,編輯配置文件內容,配置語法參照yaml。

goku.conf 如下:

admin_bind: 綁定節點獲取配置的地址,形如IP:Port,填寫內網地址或本機地址
listen_port: 管理後台監聽埠,可以開放給外網訪問
db_type: 資料庫類型,v3.1.0只支援 sqlite
db_path: sqlite db的文件路徑

3、進入{install dir}/console文件夾,運行run.sh文件以啟動控制台。

首次運行:

./run.sh start {config file} 管理員帳號 管理員密碼

示例:

./run.sh start config/goku.conf admin 123456

非首次運行:

./run.sh start|restart

4、在瀏覽器輸入伺服器IP+程式監聽埠號,進入控制台頁面

註:程式監聽埠號為goku.conf的配置項listen_port的值

(二)、節點安裝

1、安裝命令:

  mkdir -p {install dir}    mv goku-node-{version}.tar.gz {tmp}/    cd {tmp}/    tar -xzf goku-node-{version}.tar.gz    cd goku-node-{version} && ./install.sh {install dir}    cd {install dir}

2、在控制台新建節點

(1)登錄控制台,一級菜單選擇 網關節點,創建集群:
在這裡插入圖片描述
(2)進入相應的集群,為不同集群 添加節點
在這裡插入圖片描述
(3)點擊 新增節點 按鈕,填寫節點資訊後點擊 確定

  • 新建節點時的節點IP欄位填寫內網IP或本地IP
  • 若配置文件(goku.conf)中的admin_bind欄位值IP部分為127.0.0.1或localhost,此處節點IP必須填寫127.0.0.1

3、啟動節點程式:

 {install dir}/run.sh {start|stop|reload|restart|force-reload} [admin url] [port]

此處的admin url值與配置文件(goku.conf)中的admin_bind欄位值一致。

示例:

 {install dir}/run.sh start 127.0.0.1:7005 7702

4、檢查節點是否正常運行:

進入控制台的網關節點頁面,若節點的狀態顯示為運行中,則節點正常啟動:
在這裡插入圖片描述
最後,你也可以通過編譯Github上Master分支的程式碼,編譯最新的內容來安裝,編譯教程:https://help.eolinker.com/#/tutorial/?groupID=c-372&productID=19

相關鏈接

節點Dockerhttps://hub.docker.com/r/eolinker/goku-api-gateway-ce-node

控制台Dockerhttps://hub.docker.com/r/eolinker/goku-api-gateway-ce-console

新上控制台http://goku-console.eolinker.com

項目地址https://github.com/eolinker/goku-api-gateway

項目官網https://www.eolinker.com