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


什么是Goku API Gateway?

(轉載至https://segmentfault.com/a/1190000020948193)

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/g...

(一)安裝控制台

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/eoli...

控制台Dockerhttps://hub.docker.com/r/eoli...

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

項目地址https://github.com/eolinker/g...

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM