GoKu API Gateway CE 的幾種部署方式,最快一分鐘可以搞定

什麼是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:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-node
控制檯Docker:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-console
線上控制檯:http://goku-console.eolinker.com
安裝包地址:https://github.com/eolinker/goku-api-gateway

幾種部署教程

一、節點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 \
-e INSTANCE={nodeKey} \
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 \
-e INSTANCE=6d0d999f9a60d51eaf0b5bb0226290ef \ 
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: 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)點擊 新增節點 按鈕,填寫節點信息後點擊 確定:

  • 監聽地址:用於監聽節點程序;監聽的端口號用於節點做請求轉發
  • 管理地址:用於監控組件獲取監控數據和對節點做健康檢查等

3、啓動節點程序:

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

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

示例:

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

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

進入控制檯的網關節點頁面,若節點的狀態顯示爲運行中,則節點正常啓動:
在這裏插入圖片描述

最後,你也可以通過編譯Github上Master分支的代碼,編譯最新的內容來安裝,編譯教程:https://help.eolinker.com/#/tutorial/?groupID=c-372&productID=19

相關鏈接
節點Docker:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-node

控制檯Docker:https://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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章