点击蓝色“程序猿DD”关注我

回复“资源”获取独家整理的学习资料!

作者 | 码农小胖哥

来源 | 公众号「码农小胖哥」

1. 前言

今天我们来搭建Kong的环境。以便于以后对Kong的进一步了解和学习。

2. Kong支持的环境

从上图来看Kong对Linux、MacOS、容器、云 支持的还是比较全面的。鉴于大部分国内开发者使用的是Windows环境。本文依然使用Docker进行安装。建议对Docker不太了解的同学学习相关的知识。也可以关注我的公众号:Felordcn 来及时获取相关的知识。

3. 安装Kong

你的机器中必须有Docker环境,这个是前提。假设你已经具备了必须的环境。Kong的安装其实还是不复杂的,有些文章可能介绍的不是那么清楚。Kong 安装有两种方式一种是没有数据库依赖的DB-less 模式,另一种是with a Database 模式。我们这里使用第二种带Database的模式,因为这种模式功能更全。

3.1 构建Kong的容器网络

首先我们创建一个Docker自定义网络,以允许容器相互发现和通信。在下面的创建命令中kong-net是我们创建的Docker网络名称,当然你可以使用你认为合适的名称。

 docker network create kong-net

3.2 搭建数据库环境

Kong 目前使用Cassandra(Facebook开源的分布式的NoSQL数据库) 或者PostgreSql,你可以执行以下命令中的一个来选择你的Database。请注意定义网络 --network=kong-net 。

  • Cassandra容器:

docker run -d --name kong-database \--network=kong-net \-p 9042:9042 \cassandra:3
  • PostgreSQL容器:

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

这里有个小问题。如果你使用的是PostgreSQL,想挂载卷持久化数据到宿主机。通过 -v 命令是不好用的。这里推荐你使用 docker volume create 命令来创建一个挂载。如果你想知道更多可关注我的公众号:Felordcn 或者通过https://felord.cn 来获取更多信息。

docker volume create kong-volume

然后上面的PostgreSQL就可以通过- v kong-volume:/var/lib/postgresql/data 进行挂载了。

docker run -d --name kong-database \--network=kong-net \-p 5432:5432 \-v kong-volume:/var/lib/postgresql/data \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \postgres:9.6

3.3 初始化或者迁移数据库

我们使用docker run --rm来初始化数据库,该命令执行后会退出容器而保留内部的数据卷(volume)。

docker run --rm \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \kong:latest kong migrations bootstrap

这个命令我们还是要注意的,一定要跟你声明的网络,数据库类型、host名称一致。同时注意Kong的版本号,本文是在Kong 1.3 版本下完成的。

3.4 启动Kong容器

3.3步骤完成初始化或者迁移数据库后,我们就可以启动一个连接到数据库容器的Kong容器,请务必保证你的数据库容器启动状态,同时检查所有的环境参数 -e 是否是你定义的环境。

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:latest

3.5 验证

可通过 curl -i http://localhost:8001/ 或者浏览器调用 http://localhost:8001/ 来验证Kong Admin 是否联通 。

4. 安装Kong 管理UI

Kong 企业版提供了管理UI,开源版本是没有的。但是有很多的开源的管理 UI ,其中比较好用的是Konga。项目地址:https://github.com/pantsel/konga

4.1 Konga 特性

Konga 主要是用 AngularJS 写的,运行于nodejs服务端。具有以下特性:

  • 管理所有Kong Admin API对象。

  • 支持从远程源(数据库,文件,API等)导入使用者。

  • 管理多个Kong节点。使用快照备份,还原和迁移Kong节点。

  • 使用运行状况检查监视节点和API状态。

  • 支持电子邮件和闲置通知。

  • 支持多用户。

  • 易于数据库集成(MySQL,postgresSQL,MongoDB,SQL Server)。

4.2 docker安装Konga

同样我们今天通过Docker来安装Konga。安装步骤同样遵循配置数据库,初始化数据库,启动容器的流程。

4.2.1 Konga数据库容器

上面在4.1特性介绍中我们介绍了Konga支持的数据库类型。这里我们依然使用PostgreSQL。请注意我新定义了挂载卷konga-postgresql 。

 docker run -d --name konga-database  \--network=kong-net  \-p 5433:5432 \-v  konga-postgresql:/var/lib/postgresql/data  \-e "POSTGRES_USER=konga"  \-e "POSTGRES_DB=konga" \-e "POSTGRES_PASSWORD=konga"  \postgres:9.6

4.2.2 初始化Konga数据库

初始化 PostgreSQL 数据库。

docker run --rm  --network=kong-net  \pantsel/konga:latest-c prepare -a postgres-u postgres://konga@konga-database:5432/konga

相关命令解读:

命令 描述 默认
-c 执行的命令,这里我们执行的是prepare -
-a adapter 简写 ,可以是postgres 或者mysql -
-u db url 数据库连接全称 -

到此Konga的数据库环境就搞定了。

4.2.3 环境参数

Konga 还有一些可配置的环境参数:

4.2.4 启动Konga

通过以下命令就可以启动Konga容器了

docker run -d -p 1337:1337  \--network kong-net  \-e "DB_ADAPTER=postgres"  \-e "DB_URI=postgres://konga@konga-database:5432/konga"  \-e "NODE_ENV=production"  \-e "DB_PASSWORD=konga" \--name konga \pantsel/konga

运行完后,如果成功可以通过http://localhost:1337 链接到控制台。通过注册后进入,然后在dashboard面板里面添加Kong的管理Api路径http://yourdomain 。这里添加 http://ip:8001 。注意请不要使用localhost127.0.0.1 、0.0.0.0 有可能联通不上Kong。成功后就会出现 上面4. 所显现的界面。

5. 总结

今天对Kong的安装、Konga的安装进行了详细的介绍。希望对你进一步了解和学习Kong有所帮助。

本文通过OpenWrite的免费Markdown转换工具发布

留言交流不过瘾

关注我,回复“加群”加入各种主题讨论群

朕已阅 

微服务网关 Kong 快速上手攻略相关推荐

  1. xbox虚拟服务器,小白玩家看这里!国行Xbox One快速上手攻略 四步搞定

    小白玩家看这里!国行Xbox One快速上手攻略 四步搞定 2014-09-25 10:55:04来源:游戏下载编辑:评论(0) 还有4天时间国行Xbox One就将与大陆玩家见面了,想想还是有点小激 ...

  2. 计算机版的游戏怎么玩,《神武4》端游版纯新人前期快速上手攻略

    <神武4>端游版纯新人前期快速上手攻略 作者:卑微人士9527 关键字: 一.前言: 随着<神武4>电脑版开放,很多玩家进入游戏中,要在神武三界实现自己的"大佬&qu ...

  3. 云原生微服务网关 Kong 和Kong 管理UI Konga快速安装攻略

    前言 在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务.甚至有时候需要对请求进行一些安全.负载均衡.限流.熔断.灰度等中间操 ...

  4. 微服务网关Kong 1.0正式发布!提供100+项功能

    今天,我们很高兴地发布Kong 1.0 GA--一个可扩展.快速.开源的微服务API网关,用于管理.保护和连接混合和云原生架构.Kong位于服务之前,并可通过插件进行扩展,包括身份验证.流量控制.可观 ...

  5. 电脑能玩和平精英吗_和平精英新手怎么玩 和平精英快速上手攻略

    [海峡网] 和平精英公测时间 和平精英好玩吗 和平精英新手攻略 和平精英注册送豪礼 和平精英氪金系统.相信大家都很想知道吧,一起来看看吧. 不知道大家有没有关注刺激战场的一些更新,就在昨天晚上刺激战场 ...

  6. 微服务网关 Kong 科普

    Kong 是由 Mashape 开发的并于2015年开源的一款API 网关,它是基于OpenResty(Nginx + Lua模块)和 Apache Cassandra/PostgreSQL 构建的, ...

  7. 原创 | 微服务网关 Kong 科普

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入新技术群 欢迎跳转到本文原文地址:https://honeypps.com ...

  8. Bootstrap框架快速上手攻略

    前言 概念 1.选择器 .xx  类选择器 #xx  id选择器 xxx  标签选择器 2.缩写 div  division 划分,图层 ul unordered lists 无序列表 ol orde ...

  9. Spring Cloud Gateway面试攻略,微服务网关的作用以及案例

    微服务系列导航 第一篇:初学者如何快速入门微服务,面试前如何快速熟悉微服务 第二篇:微服务Spring Cloud Alibaba之Nacos篇, Nacos 就是注册中心 + 配置中心的组合 第三篇 ...

最新文章

  1. 设计模式 — 行为型模式 — 备忘录模式
  2. 详解 Weex JS Framework 的编译过程
  3. ASP实现记住密码的功能
  4. Codeforces Round #484 (Div. 2) A. Row
  5. Grails 1.2参考文档速读(19):插件
  6. 人工智能将再创新高,清华发布人工智能白皮书
  7. adf时间作用域_ADF任务流:页面片段的托管bean作用域
  8. 一些很有意思的JS现象
  9. 机器学习算法总结之Bagging与随机森林
  10. 125条常见的java面试笔试题大汇总3
  11. linux鼠标改为自动聚焦,如何在Linux上取消聚焦(模糊)Pythongi GTK+3窗口
  12. Luogu1373 小a和uim之大逃离
  13. http://www.jb51.net/os/Ubuntu/35201.html
  14. Firefox 尝试与您指定的代理服务器连接时被拒绝
  15. CAN总线通信学习笔记
  16. 程序员最爱说的十句口头禅。。 | 今日最佳
  17. 滑动窗口—至多包含两个不同字符的最长子串(leetcode 159)
  18. 制造业信息化的长治久安之计--Agentflow解决方案简介
  19. Android/Automotive 多声道录音支持
  20. 【QCA】ubuntu1804 与 QSDK 编译环境适配问题

热门文章

  1. linux c 获取网络接口信息 ioct l函数 ifreq ifconf 结构体 简介
  2. linux crontab 定时任务 计划任务 不执行 原因
  3. 无线网络嗅探中的Radiotap
  4. docker-compose.yml 配置文件编写
  5. python3 value查key的三种方法
  6. 区块链 重放攻击 简介
  7. linux socket中 send recv函数的 flags参数
  8. VC界面库BCGControlBar和Xtreme Toolkit详细对比评测
  9. Android开发精要3--Android中的Intent机制
  10. KVM虚拟机源代码分析