几种部署 Goku API Gateway 的方式,最快一分钟可使用上网关 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
vocalman
V2EX    分享创造

几种部署 Goku API Gateway 的方式,最快一分钟可使用上网关

  •  
  •   vocalman 2019-11-08 17:09:47 +08:00 2851 次点击
    这是一个创建于 2222 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文将介绍几种部署 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 )点击 新增节点 按钮,填写节点信息后点击 确定

    ul>
  • 新建节点时的节点 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

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5171 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:08 PVG 16:08 LAX 00:08 JFK 03:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86