kong(2):docker搭建kong环境

news2024/12/23 10:41:23

Kong 安装有两种方式一种是没有数据库依赖的DB-less 模式,另一种是with a Database 模式。我们这里使用第二种带Database的模式,因为这种模式功能更全。

1 docker安装Kong

1.1构建Kong的容器网络

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

docker network create kong-net

1.2 搭建数据库环境

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

  • Cassandra容器:
docker run-d --name kong-database --network=kong-net -p9042:9042 cassandra:3

  • PostgreSQL容器:
docker run -d --name kong-database --network=kong-net -p5432:5432 -e"POSTGRES_USER=kong" -e"POSTGRES_DB=kong" postgres:9.6

这里有个小问题。如果你使用的是PostgreSQL,想挂载卷持久化数据到宿主机。通过 -v 命令是不好用的。这里推荐你使用 docker volume create 命令来创建一个挂载。

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" -e "POSTGRES_PASSWORD=kong" postgres:9.6

完成后可以查看到容器

docker ps

如上图,可以通过访问5432端口访问数据库。 

1.3 初始化或者迁移数据库

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

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

navicat中可以看到表信息

1.4 启动Kong容器

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

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

1.5 验证

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

安装Kong 管理UI

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

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

  • 管理所有Kong Admin API对象。
  • 支持从远程源(数据库,文件,API等)导入使用者。
  • 管理多个Kong节点。使用快照备份,还原和迁移Kong节点。
  • 使用运行状况检查监视节点和API状态。
  • 支持电子邮件和闲置通知。
  • 支持多用户。
  • 易于数据库集成(MySQL,postgresSQL,MongoDB,SQL Server)。

2.1 docker安装Konga

启动Konga数据库容器

Konga支持PostgreSQL数据库。定义挂载卷 konga-postgresql

docker volume create 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

初始化 PostgreSQL 数据库

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

相关命令解读:

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

 

到此Konga的数据库环境就搞定了,通过Navicat可以查看到konga数据库及其数据表。

 

环境参数

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

 

启动Konga

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

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

运行完后,如果成功可以通过http://192.168.222.142:1337/ 链接到控制台。

通过注册后进入,然后在dashboard面板里面添加Kong的管理Api路径 http://ip:8001

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/450482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

022:Mapbox GL 加载geojson数据,形成热力图,自定义样式

第022个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载geojson数据,形成热力图. paint设置的参数:heatmap-color,heatmap-intensity,heatmap-opacity,heatmap-radius,heatmap-weight,visibility,具体请参考下面的api链接。 直接复制下面的 vue+mapbox源代…

如何实现网络安全的无缝衔接

随着信息技术的飞速发展,数字化转型已成为企业发展的必经之路。然而,随着技术进步带来的便利,网络安全问题也日益凸显。那么,在数字化转型的过程中,企业如何实现网络安全的无缝衔接呢? 一、网络安全与数字化…

功能分析临时参考

App 组件中注释 Menu, 去除顶部菜单 MenuWrapper SubMenuComponent 请求/chart/add ,直接展示绘图页 此过程,浏览器只加载静态资源,没有api的数据请求。 取消登录限制: api: GET, POST /chart/add view: SliceModel…

Elasticsearch:了解和解决文档更新后 Elasticsearch 分数的变化

问题 问卷中有如下这样的文档,开发者想通过 match query 搜索这些文档来使用分数。 POST sample-index-test/_doc/1 {"first_name": "James","last_name" : "Osaka" } 以下是对上述文档的示例查询: GET sam…

阿里6面,成功唬住面试官拿了26K,突然感觉软件测试面试貌似不太难...

一次闲聊,一个在阿里上班的朋友突然说起他在阿里的面试经历。 朋友说,阿里的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一…

【MYSQL】索引与事务(超详细)

文章目录 🌷 1.索引⭐️ 1.1 定义⭐️ 1.2 为什么要用索引⭐️ 1.3 作用⭐️ 1.4 使用场景⭐️ 1.5 使用🍁 1.5.1 查看索引🍁 1.5.2 创建索引🍁 1.5.3 删除索引 ⭐️ 1.6 创建索引的⽅式⭐️ 1.7 选择索引的数据结构(面…

MySQL的索引与SQL优化策略

文章目录 存储引擎常见的存储引擎 索引索引结构BTree的优点索引分类索引语法explain执行计划索引的使用原则最左前缀法则范围查询索引列进行运算操作字符串不加引号模糊查询or连接的条件数据分布影响 覆盖索引前缀索引索引的设计原则 SQL优化insert优化主键优化order by优化gro…

途虎养车三闯IPO,如何突破亏损“魔咒”?

近日,汽车后市场的“资本宠儿”途虎养车更新招股书,再次闯关港股IPO。 途虎养车是一家中国线上线下一体化汽车服务平台。2013-2021年,途虎养车共进行16轮融资,融资总额超过90亿元。这是继2022年1月和8月先后两次递表失效后&#…

layui框架实战案例(20):常用条件判断和信息展示技巧(图片预览、动态表格、短信已读未读、链接分享、信息脱敏、内置框架页)

本文档是近期layui的汇总,部分内容可能会重复。 文章目录 前言一、上传图片预览1.HTML代码2.JQ渲染代码 二、动态表格数据返回条件判断1.动态表格返回列状态判断2.cols列数据事件操作3.删除信息4.短信已读未读状态处理5.confirm确认事件6.链接分享7.信息脱敏 三、内…

【分享】解压文件一直显示失败,如何处理?

想要解压压缩文件,却发现一直显示失败,有可能是以下几个原因引起的。 1、原压缩文件在下载或者发送过程中出现漏洞,导致文件数据不完整。 2、压缩文件感染病毒,或者杀毒软件等阻止解压缩操作。 3、源文件在压缩的过程中&#x…

参展第六届中国城市轨道交通智慧运维大会 | 图扑软件

2022(第六届)中国城市轨道交通智慧运维大会在西安顺利举行。此次大会由现代轨道交通网联合中国机械工程学会设备智能运维分会主办,西安市轨道交通集团有限公司运营分公司、轨道交通工程信息化国家重点实验室(中铁一院)协办。来自行业学会、地…

【vue.js】前端生成随机图片组件

文章目录 前言效果代码 前言 这是一个前端随机生成图片的组件&#xff0c;可以用作滑块验证组件的背景图。 效果 以下效果是结合滑块验证组件一起构建的。 代码 <template><img ref"random-image" /> </template> <script> export defau…

V2.4版本商超标签专用路由器

PICK_Router_V2.4 产品参数 产品型号 PICK_Router_V2.4 尺寸(mm) 21*14*4.3mm 工作温度 -10-70℃ 产品重量 465g 供电方式 DC12V or POE 工作频率 2.4G 通信速率 50-250kbps 通信方式 10/100Mbps有线网络&2.4G 通信半径 30m 支持标签数量 >10000…

ChatGPT其实并不想让开发人员做这5件事情,但却已经被玩坏了

前言 ChatGPT已经火爆了快半年了吧&#xff0c;紧接着国内也开始推出了各种仿制品&#xff0c;我甚至一度怀疑&#xff0c;如果人家没有推出ChatGPT&#xff0c;这些仿制品会不会出现。而很多人也嗨皮得不行&#xff0c;利用各种方法开始科学上网&#xff0c;用ChatGPT做各种觉…

PostMan笔记(四)Mock服务与API文档管理

1. Mock服务 1.1 为什么使用Mock服务 Postman的Mock服务是一种API模拟工具&#xff0c;可以用于模拟API的行为并返回虚拟的响应。它可以帮助开发人员在实际API实现之前测试和验证API设计&#xff0c;以及在客户端应用程序开发过程中进行测试和调试。 使用Postman的Mock服务可…

SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈(Feign、Gateway)

http客户端Feign &#xff08;一&#xff09;基于Feign远程调用 1、RestTemplate方式调用存在的问题 2、Feign的介绍 3、定义和使用Feign客户端 这个接口里面将来的封装的就是所有对userservice发起的远程调用 1、orderserivce的pom <!--feign客户端依赖--> <depe…

花生壳内网穿透步骤详解,感兴趣的小伙伴可以自己去尝试哦~

花生壳是什么&#xff1f; 花生壳是款具备内网穿透功能的软件。是通过云服务器快速与内网服务器建立连接&#xff0c;同时把内网端口映射到云端&#xff0c;实现各类基于域名的互联网应用服务。花生壳能够实现反向代理应用&#xff0c;支持TCP、HTTP、HTTPS协议&#xff0c;端…

数据结构基础day3

题目&#xff1a;119. 杨辉三角II 我的解法&#xff1a;先将杨辉三角存储起来&#xff0c;取出第rowIndex行 class Solution { public:vector<int> getRow(int rowIndex) {vector<vector<int>> ans(rowIndex1); //初始化rowIndex1行的杨辉三角for(int i0; …

贾其萃 : 笃行实践 筑梦扬帆 | 提升之路系列(二)

导读 为了发挥清华大学多学科优势&#xff0c;搭建跨学科交叉融合平台&#xff0c;创新跨学科交叉培养模式&#xff0c;培养具有大数据思维和应用创新的“π”型人才&#xff0c;由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

如何开发一款用户体验优秀的语音交友app?

在数字时代&#xff0c;人们越来越依赖智能手机上的应用程序来与他人进行交流。其中&#xff0c;语音交友app成为了最受欢迎的应用之一。然而&#xff0c;开发一款成功的语音交友app需要深入了解用户需求与体验。本文将探讨如何开发一款用户体验优秀的语音交友app。 着眼于用户…