API Gateway Kong在Rainbond上的部署
什么是Kong
Kong是一个可扩展的开源API平台(也称为API网关,API中间件或微服务服务网格)。Kong最初是由Kong Inc.(以前称为Mashape)实现的,用于为其API Marketplace维护、管理和扩展超过15,000个微服务,这些微服务每月产生数十亿个请求。
技术上讲,Kong是在Nginx中运行的Lua应用程序,并且通过lua-nginx-module实现。Kong是与OpenResty一起分发的,而不是使用此模块来编译Nginx,OpenResty已经包括lua-nginx-module。
了解更多有关Kong的事情,你需要点击了解一下。
从应用市场安装
快速安装
目前我们已经将最新版本(v1.4.X)的Kong发布到了应用市场,如果你想要快速的搭建以及使用Kong,你只需要做一件事情,那就是点击一下安装:
等待一小段时间后,Kong就已经部署在了你的Rainbond集群中了。在这个应用中,我们已经集成了Konga作为UI管理工具,接下来的步骤,需要你访问Konga,做几步简单的设置,就可以愉快的探索Kong了。
- 注册Konga
- 配置Kong的连接地址,写入
http://127.0.0.1:8001
即可
- 连接成功,就可以使用Konga来管理你的Kong了
注意事项
-
如果你所使用的Rainbond平台,是在2019年12月25日以前安装的,并且没有进行过任何升级操作,那么你可能遇到Konga连接不到Kong的问题,解决的方案如下:
- Kong的启动很消耗内存
配置Kong
环境变量
Kong支持以KONG_
开头的环境变量进行配置。举例说明:
对于部署在Rainbond上的Kong来说,直接添加环境变量
KONG_LOG_LEVEL = error
即可在Kong的配置文件中生成
log_level = error
添加完成后,点击更新,即可使之生效。
注入Nginx配置
通过调整Kong实例的Nginx配置,可以优化其基础架构的性能。
Kong启动时,将构建一个Nginx配置文件。你可以通过Kong配置直接将自定义Nginx配置注入此文件。
注入单个Nginx配置
Kong的配置文件中的任何前缀为的条目nginx_http_
, nginx_proxy_
或nginx_admin_
通过删除前缀将其转换为等效的Nginx指令,并将其添加到Nginx配置的相应部分:
- 前缀为的条目
nginx_http_
将注入到整体http
块指令中。 - 前缀为的条目
nginx_proxy_
将注入到server
处理Kong代理端口的block指令中。 - 前缀为的条目
nginx_admin_
将注入到server
处理Kong的Admin API端口的block指令中。
例如,如果将以下行添加到kong.conf
文件中:
nginx_proxy_large_client_header_buffers=16 128k
它将以下指令添加到server
Kong的Nginx配置的代理块中:
large_client_header_buffers 16 128k;
为了达到这个目的,你需要参考环境变量,为Kong添加以下环境变量:
KONG_NGINX_HTTP_OUTPUT_BUFFERS = "4 64k"
通过注入的Nginx指令包含文件
对于更复杂的配置方案,例如添加整个新 server
块,可以使用上述方法include
向Nginx配置注入 指令,指向包含其他Nginx设置的文件。
可以通过在kong.conf
文件中添加以下条目来包含目标文件:
nginx_http_include = /path/to/your/my-server.kong.conf
在Rainbond上,可以通过环境变量进行配置:
KONG_NGINX_HTTP_INCLUDE="/path/to/your/my-server.kong.conf"
Kong应用怎么制作
即点即用的Kong,使用起来非常方便。那么这个应用是怎么制作的呢?
我们只需要做到以下几点,就可以发布出可以即点即用的云市场应用:
- 目标应用的所有组件都已经部署在Rainbond并正常运行
- 各服务组件使用的数据库具备自动初始化数据的功能
- 各服务组件间的依赖关系已经处理妥当,从业务层面已经正常运行
接下来,只需要参考应用分享与发布,将你的应用发布出去即可。
数据库自动初始化
Kong可以使用的数据库包括 Postgres与Cassandra
,我们这里使用了前者。
首先利用docker run 命令快速部署一个Postgresql:
docker run -d --name kong-database \ -p 5432:5432 \ -e "POSTGRES_USER=kong" \ -e "POSTGRES_DB=kong" \ postgres:9.6
使用Kong的镜像,即可初始化数据库表结构,在部署初始化组件时,要记得建立从 kong-init
指向 kong-database
的依赖关系:
docker run --rm \ --name kong-init \ --link kong-database:kong-database \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=127.0.0.1" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ kong kong migrations bootstrap
kong-init
运行完成后会自动退出,在Rainbond上显示运行异常,不用担心,它已经完成了使命,验证下 kong-database
中已存在数据表结构,就可以删除kong-init
了。
进入 kong-database
的容器实例,通过命令行工具备份出数据库。
pg_dump -U kong -d kong > /var/lib/postgresql/data/data.sql
找到 kong-database
的数据持久化目录,得到 data.sql
,kong-database
的使命也就达成了,可以被关闭删除。
自定义一个代码仓库,参考 https://github.com/dazuimao1990/pri-postgresql/tree/kong 将 data.sql
放到 sql
目录下,即可用这份代码创建一个可以自动初始化表结构的Postgresql了。创建之,命名为 kong-postgres
备用。
部署Kong
直接使用docker run 命令创建Kong,要记得建立从 Kong
指向 kong-postgres
的依赖关系:
docker run -d --name kong \ --link kong-database:kong-database \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=127.0.0.1" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong
内存至少提高至4G。
部署Konga
直接使用docker run 命令创建Konga,要记得建立从 Konga
指向 Kong
的依赖关系:
docker run -p 1337:1337 \ --name konga \ pantsel/konga
完成后,最终拓扑将会是这个样子的:
发布应用
点击 发布到市场
,编辑它的信息,即可发布了。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
企业官网如何选择阿里云服务器实例配置?
企业怎么选阿里云服务器?对于企业来说,云服务器的使用非常重要。如果实例选择错误,可能会影响到云服务器计算性能及后期运营状况,那么选阿里云服务器要把握好哪几个点呢? 我们在购买阿里云服务器之前,根据不同的实例型号以及应用场景选择合适的云服务器配置。另外,购买阿里云产品(还有代金券礼包免费领取)希望对大家有所帮助。代金券可在购买支付订单的时候抵扣部分订单金额,一定程度上节约我们的购买成本。 云服务器选择时,总的来说,一开始先不要购买太高配置太好的云主机,最开始我们可以选择配置低一点,只要能运行起来我们的程序活着应用即可,当发现不够用的时,可以在进行升级,升级只需要很短时间,一般不会影响网站业务。这就是云服务器弹性伸缩功能的好处。 1、实例规格族选择:对于很多新手用户来说,实例规格族的选择是最难的,因为阿里云提供的可选实例规格有很多,不同的实例规格在性能和使用场景上是不一样的,这里我们一定要参考阿里云帮助中心-实例规格族,根据自己的业务类型,选择适合自己的实例规格。 2、内存:选择云服务器,主要是根据自己的需要购买。可以根据网站的规模选择合适的配置,一般应用选择2G内存,超过50g的硬盘配置...
- 下一篇
急速搭建 Serverless AI 应用:为你写诗
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息参考。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档参考。 备注: 本文介绍的技巧需要 Fun 版本大于等于 3.2.0。 依赖工具 本项目是在 MacOS 下开发的,涉及到的工具是平台无关的,对于 Linux 和 Windows 桌面系统应该也同样适用
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS关闭SELinux安全模块
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19