资讯专栏INFORMATION COLUMN

Docker 部署 Kong 网关

zhouzhou / 864人阅读

摘要:自定义配置文件镜像的配置文件路径为如需自定义配置文件,自行挂载即可。配置项手册管理网关的的使用教程这里就不写了,自行觅食吧简单的看看下面这篇可以的集成插件服务网关

Kong 镜像: https://hub.docker.com/_/kong

官网给定的用户安装手册上并没有设置 PG 的密码,导致如下问题无法启动

nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:277: [PostgreSQL error] failed to >retrieve server_version_num: connection refused
stack traceback:[C]: in function "assert"
/usr/local/share/lua/5.1/kong/init.lua:277: in function "init"
init_by_lua:3: in main chunk

后在 issues 中找到问题原因及解决方法(里面还有个docker-compose):
https://github.com/Kong/docke...

使用 docker 的安装

Kong 使用 postgresql 或 cassandra 存储数据,这里我们选用 PG

# 创建 pg 数据库 容器
docker run -d --name kong-database 
-p 5432:5432 
-e "POSTGRES_USER=kong" 
-e "POSTGRES_DB=kong" 
-e "POSTGRES_PASSWORD=your_pg_password" 
postgres:9.6
# kong 数据迁移到 pg
docker run --rm 
--link kong-database:kong-database  #将 kong-database 容器的地址引入注册到本容器
-e "KONG_DATABASE=postgres" 
-e "KONG_PG_HOST=kong-database" 
-e "KONG_PG_PASSWORD=your_pg_password"  # 官方文档未给出此参数 PG 可能不支持无密登录了
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" 
kong kong migrations bootstrap
#创建 kong 容器
docker run -d --name kong 
--link kong-database:kong-database 
-e "KONG_DATABASE=postgres" 
-e "KONG_PG_HOST=kong-database" 
-e "KONG_PG_PASSWORD=your_pg_password" 
-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  # http 代理端口
-p 8443:8443  # https 代理端口
-p 8001:8001  # http 管理接口
-p 8444:8444  # https 管理接口
kong
#查看是否启动
docker ps

#如未启动通过日志查看问题
docker logs kong

#如正常启动 可访问管理Api(替换成你的IP)
curl -X GET http://192.168.20.6:8001

因为 kong 服务是在容器中,所以设 KONG_ADMIN_LISTEN 为全局监听才能通过宿主机IP代理访问,宿主机则需对相应的映射端口做访问限制,如本机/内网访问,且不应该对外网可访问,不然谁都可以改你的Api网关策略了。

自定义 kong 配置文件

kong docker 镜像的配置文件路径为 /etc/kong/kong.conf
如需自定义配置文件,自行挂载即可。
kong 配置项手册:https://docs.konghq.com/1.0.x...

...
-v /opt/kong/kong.conf:/etc/kong/kong.conf
...

管理网关的API的使用教程这里就不写了,自行觅食吧~简单的看看下面这篇可以的
Kong 集成 Jwt 插件:https://www.cnkirito.moe/kong...
kong服务网关API:https://www.jianshu.com/p/ef6...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28058.html

相关文章

  • API 网关Kong-docker&安装

    摘要:搭建的安装部署方式有很多中,官方提供了如下几种的安装方式。还有一些社区提供的安装方式注每种方式的具体如何安装部署,请移驾到官网安装部署下面我们来详细介绍下使用来部署过程需要创建一个自定义网络,以允许容器相互发现和通信。 1、Kong搭建 kong 的安装部署方式有很多中,官方提供了如下几种的安装方式。showImg(https://segmentfault.com/img/bVbvv3...

    shiyang6017 评论0 收藏0
  • docker安装kong网关

    摘要:创建一个创建数据库以为例准备数据库拉取并运行安装并启动可视化界面注意你的,不是或者之后不能有空格 1、创建一个Docker network docker network create kong-net 2、创建数据库以PostgreSQL为例 docker run -d --name kong-database --network=kong-net ...

    flyer_dev 评论0 收藏0
  • 企业级API网关Kong

    摘要:企业级网关学习使用整理目录介绍网关简介安装部署网关安装注学习过程会逐步完善文档,敬请关注,谢谢参考文献官网文档社区如有不当之处欢迎指正,谢谢 1、企业级API网关学习使用整理 1.2 目录 1.2.1 介绍 API网关Kong-简介 1.2.2 安装部署 API网关Kong-docker&安装 注:学习过程会逐步完善文档,敬请关注, 谢谢!参考文献: 官网:https://kongh...

    xuhong 评论0 收藏0
  • Kong网关部署

    摘要:是一个成熟的网关解决方案。网关的下一层,是内部服务,内部服务只需开发和关注具体业务相关的实现。网关可以提供发布管理维护等主要功能。   Kong是一个使用了lua-nginx-module运行在Nginx之上的Lua应用。Kong是一个成熟的API网关解决方案。API 网关,即API Gateway,是大型分布式系统中,为了保护内部服务而设计的一道屏障,可以提供高性能、高可用的 API...

    hiyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<