Docker容器下安装Kong网关

网关介绍

kong官网安装文档!

网关是微服务中不可或缺的一部分,它承载了所有请求流量入口,参数验证拦截,用户权限验证,但是除了JAVA的spring cloud之外,公共网关屈指可数,其中轻量级最小、最受欢迎的无疑就是Kong了,玩过springcloud的小伙伴肯定知道zuul这一个组件,它只提供了动态路由的功能,开发者需要自己研发zuul filter,当然,一个功能点你会看不出什么,但是如果在此基础上提出更多的要求,那完犊子,zuul使用者需要自己承担这些责任,加班加班加班!!!最重要的当然是zuul官方已经停止更新啦~)而对于kong来说,限流、动态路由、权限都只是插件,简单配置下,开箱即用,方便的一批。

kong在github上人气也是高的一逼,star有24k+次,相比也知道大家对kong网关的喜爱,从下面这张官方配图可以看出,kong把本身每个服务都需要重复编写的操作汇总到了一起,让业务关注业务实现不用在为很多的规则进行重复的处理。

image.png

个人觉得kong的主要优势:

插件市场丰富,很多插件可以降低开发成本;
可扩展性,可以编写lua脚本来定制自己的参数验证权限验证等操作;
基于openResty,openResty基于Nginx保障了强劲的性能;
便捷性能扩容,只需要水平增加服务器资源性能就能提升 ;
负载均衡健康检查

docker部署kong

废话了那么多,现在开始步入主题。PS:postgreSql数据库版本必须 > 9.4

(postgres跟kong网关版本请跟我一致,谢谢。)

1、docker安装(略过!)

2、创建kong-net网络

docker network create kong-net

3、数据库使用 postgres

   docker run -d
     --name kong-database
     --network=kong-net -p 5432:5432 
     -e "POSTGRES_USER=kong" 
     -e "POSTGRES_DB=kong" postgres:9.6

4、准备数据库数据和配置

docker run --rm --network=kong-net -e "KONG_DATABASE=postgres" 
    -e "KONG_PG_HOST=kong-database" 
    -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database"
    kong:1.0.3 kong migrations bootstrap
image.png

出现此消息就代表kong安装配置好啦!

5、启动kong-service

 docker run -d --name kong --network=kong-net 
     -e "KONG_DATABASE=postgres" 
     -e "KONG_PG_HOST=kong-database" 
     -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:1.0.3

6、使用docker命令查看容器是否启动

//查看已运行的容器
docker ps
//查看所有容器
docker ps -a
image.png

7、调用了一下地址看下是否有输出!

curl -i http://localhost:8001/

8、安装konga

docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:@(自己服务器的ip地址):5432/konga

9、启动konga

docker run -p 1337:1337 \
        --network kong-net \
        --name konga \
        -e "NODE_ENV=production"  \
        -e "DB_ADAPTER=postgres" \
        -e "DB_URI=postgresql://kong:(自己服务器的ip地址)/konga" \
        pantsel/konga
输入http://{konga-ip}:1337/

至此,kong网关跟konga管理界面就已经安装好了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。