微服务网关 Kong 快速上手攻略
点击蓝色“程序猿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
。注意请不要使用localhost
、127.0.0.1
、0.0.0.0
有可能联通不上Kong。成功后就会出现 上面4. 所显现的界面。
5. 总结
今天对Kong的安装、Konga的安装进行了详细的介绍。希望对你进一步了解和学习Kong有所帮助。
本文通过OpenWrite的免费Markdown转换工具发布
留言交流不过瘾
关注我,回复“加群”加入各种主题讨论群
朕已阅
微服务网关 Kong 快速上手攻略相关推荐
- xbox虚拟服务器,小白玩家看这里!国行Xbox One快速上手攻略 四步搞定
小白玩家看这里!国行Xbox One快速上手攻略 四步搞定 2014-09-25 10:55:04来源:游戏下载编辑:评论(0) 还有4天时间国行Xbox One就将与大陆玩家见面了,想想还是有点小激 ...
- 计算机版的游戏怎么玩,《神武4》端游版纯新人前期快速上手攻略
<神武4>端游版纯新人前期快速上手攻略 作者:卑微人士9527 关键字: 一.前言: 随着<神武4>电脑版开放,很多玩家进入游戏中,要在神武三界实现自己的"大佬&qu ...
- 云原生微服务网关 Kong 和Kong 管理UI Konga快速安装攻略
前言 在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务.甚至有时候需要对请求进行一些安全.负载均衡.限流.熔断.灰度等中间操 ...
- 微服务网关Kong 1.0正式发布!提供100+项功能
今天,我们很高兴地发布Kong 1.0 GA--一个可扩展.快速.开源的微服务API网关,用于管理.保护和连接混合和云原生架构.Kong位于服务之前,并可通过插件进行扩展,包括身份验证.流量控制.可观 ...
- 电脑能玩和平精英吗_和平精英新手怎么玩 和平精英快速上手攻略
[海峡网] 和平精英公测时间 和平精英好玩吗 和平精英新手攻略 和平精英注册送豪礼 和平精英氪金系统.相信大家都很想知道吧,一起来看看吧. 不知道大家有没有关注刺激战场的一些更新,就在昨天晚上刺激战场 ...
- 微服务网关 Kong 科普
Kong 是由 Mashape 开发的并于2015年开源的一款API 网关,它是基于OpenResty(Nginx + Lua模块)和 Apache Cassandra/PostgreSQL 构建的, ...
- 原创 | 微服务网关 Kong 科普
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入新技术群 欢迎跳转到本文原文地址:https://honeypps.com ...
- Bootstrap框架快速上手攻略
前言 概念 1.选择器 .xx 类选择器 #xx id选择器 xxx 标签选择器 2.缩写 div division 划分,图层 ul unordered lists 无序列表 ol orde ...
- Spring Cloud Gateway面试攻略,微服务网关的作用以及案例
微服务系列导航 第一篇:初学者如何快速入门微服务,面试前如何快速熟悉微服务 第二篇:微服务Spring Cloud Alibaba之Nacos篇, Nacos 就是注册中心 + 配置中心的组合 第三篇 ...
最新文章
- 设计模式 — 行为型模式 — 备忘录模式
- 详解 Weex JS Framework 的编译过程
- ASP实现记住密码的功能
- Codeforces Round #484 (Div. 2) A. Row
- Grails 1.2参考文档速读(19):插件
- 人工智能将再创新高,清华发布人工智能白皮书
- adf时间作用域_ADF任务流:页面片段的托管bean作用域
- 一些很有意思的JS现象
- 机器学习算法总结之Bagging与随机森林
- 125条常见的java面试笔试题大汇总3
- linux鼠标改为自动聚焦,如何在Linux上取消聚焦(模糊)Pythongi GTK+3窗口
- Luogu1373 小a和uim之大逃离
- http://www.jb51.net/os/Ubuntu/35201.html
- Firefox 尝试与您指定的代理服务器连接时被拒绝
- CAN总线通信学习笔记
- 程序员最爱说的十句口头禅。。 | 今日最佳
- 滑动窗口—至多包含两个不同字符的最长子串(leetcode 159)
- 制造业信息化的长治久安之计--Agentflow解决方案简介
- Android/Automotive 多声道录音支持
- 【QCA】ubuntu1804 与 QSDK 编译环境适配问题