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

什麼是Goku API Gateway?

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

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

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

一套完整的 Goku API Gateway 由一個 控制檯 和 若干個 網關節點 組成。節點經過IP地址註冊在控制檯中,控制檯內的配置項會對全部節點生效。控制檯用於配置網關的運行信息,例如訪問策略、轉發的API信息等等;節點用於實際的轉發。當控制檯上發佈了最新的配置,全部節點都會主動更新本身的運行配置;在控制檯發佈的配置支持版本管理,能夠手動發佈和回滾。github

Goku API Gateway支持管理多個網關節點的集羣,實現讓用戶訪問不一樣的集羣從而訪問不一樣的服務地址的目的。sql

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

線上控制檯地址:http://goku-console.eolinker.com數據庫

使用線上控制檯的話沒法區分不一樣集羣,如需使用更強功能建議仍是部署本身的私有云控制檯。json

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

1、節點docker+線上控制檯segmentfault

2、節點docker+線上控制檯Dockerapi

3、使用安裝包直接安裝

部署安裝時須要用到的連接:

1、節點Docker+線上控制檯

Goku API Gateway提供節點Docker和控制檯Docker,最快的方式就是僅部署節點Docker,而後經過線上控制檯來配置網關信息,配置完成後導出文件並上傳到節點服務器,最後啓動節點Docker。

使用步驟

一、配置完畢後,在線上控制檯的首頁導出配置:
在這裏插入圖片描述
二、將配置上傳到服務器,啓動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}} 。

2、節點Docker+控制檯Docker

(一)部署控制檯

一、 建立goku-ce專屬網絡

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

二、運行控制檯程序

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

三、 登陸控制檯

打開瀏覽器,輸入 域名/IP+瀏覽器訪問端口號,進入控制檯頁面,輸入用戶名(admin)及密碼(啓動設置的admin密碼)進行登陸:
在這裏插入圖片描述

(二)部署網關節點

一、進入控制檯,新建節點

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

二、在控制檯生成併發布配置

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

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

三、啓動節點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

四、查看節點運行狀態

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

3、經過安裝包直接部署

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

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

(一)安裝控制檯

一、安裝命令:

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}

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

goku.conf 以下:

admin_bind: 綁定節點獲取配置的地址,形如IP:Port,填寫內網地址或本機地址
listen_port: 管理後臺監聽端口,能夠開放給外網訪問
db_type: 數據庫類型,v3.1.0只支持 sqlite
db_path: sqlite db的文件路徑

三、進入{install dir}/console文件夾,運行run.sh文件以啓動控制檯。

首次運行:

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

示例:

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

非首次運行:

./run.sh start|restart

四、在瀏覽器輸入服務器IP+程序監聽端口號,進入控制檯頁面

注:程序監聽端口號爲goku.conf的配置項listen_port的值

(二)、節點安裝

一、安裝命令:

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}

二、在控制檯新建節點

(1)登陸控制檯,一級菜單選擇 網關節點,建立集羣:
在這裏插入圖片描述
(2)進入相應的集羣,爲不一樣集羣 添加節點
在這裏插入圖片描述
(3)點擊 新增節點 按鈕,填寫節點信息後點擊 肯定

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

三、啓動節點程序:

{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

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

進入控制檯的網關節點頁面,若節點的狀態顯示爲運行中,則節點正常啓動:
在這裏插入圖片描述
最後,你也能夠經過編譯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

相關文章
相關標籤/搜索