kong网关安装及konga安装

news2024/9/29 7:26:39

一、kong安装

安装机器地址:192.168.19.50

1、自定义一个docker网络

[root@min ~]# docker network create kong-net
a9bde4e7d16e4838992000cd5612476b238f7a88f95a07c994a9f57be7f64c10

查看网络是否创建成功

[root@min ~]# docker network ls
NETWORK ID     NAME       DRIVER    SCOPE
e30d2ad88f06   bridge     bridge    local
f5707c0bc33a   host       host      local
a9bde4e7d16e   kong-net   bridge    local
469a9f965ac7   none       null      local

可以看到kong-net网络已经创建成功

2、启动PostgreSQL容器

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

3、准备kong所需要的数据

docker run --rm --network=kong-net \
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=kong-database" \
 -e "KONG_PG_PASSWORD=kongpass" \
 -e "KONG_PASSWORD=test" \
kong/kong-gateway:3.3.0.0 kong migrations bootstrap

初始化完成后,数据库会新增一些表:

4、 启动Kong容器

docker run -d --name kong-gateway \
 --network=kong-net \
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=kong-database" \
 -e "KONG_PG_USER=kong" \
 -e "KONG_PG_PASSWORD=kongpass" \
 -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" \
 -e "KONG_ADMIN_GUI_URL=http://localhost:8002" \
 -e KONG_LICENSE_DATA \
 -p 8000:8000 \
 -p 8443:8443 \
 -p 8001:8001 \
 -p 8444:8444 \
 -p 8002:8002 \
 -p 8445:8445 \
 -p 8003:8003 \
 -p 8004:8004 \
 kong/kong-gateway:3.3.0.0

5、验证是否安装成功

curl -i -X GET --url http://localhost:8001/services

通过上面可以看到,可以看出来kong已经安装成功

由于开源版本的kong manage不可以使用,所以我们需要安装konga来进行界面化管理,konga的安装如下:

二、konga安装 

1、数据库准备

konga支持MySQL、MongoDB、PostgresSQL三种数据库,这里我们选用mysql数据作为konga的持久化层,使用如下指令启动一个mysql数据库

docker run --name mysql5.7  -p 3306:3306 -e  MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7

2、安装konga(虚拟机地址:192.168.19.50)

2.1 执行初始化数据库操作,建表操作:

docker run --rm pantsel/konga:latest -c prepare -a mysql -u mysql://root:my-secret-pw@192.168.19.50:3306/konga_databas

创建完成后:

 2.2 真正执行安装

 docker run -d -p 1337:1337 --network=kong-net -e "DB_ADAPTER=mysql"  -e "DB_HOST=192.168.19.50" -e "DB_PORT=3306" -e "DB_USER=root"  -e "DB_PASSWORD=my-secret-pw" -e "DB_DATABASE=konga_databas" -e "NODE_ENV=production" --name konga pantsel/konga

2.3 在外部主机浏览器上输入

192.168.19.50:1337

填写好信息,

userName: kong-test

email: kong@kong.com

password:1234567

点击CREATE ADMIN 按钮,跳转到登录页面:

, 输入刚刚的注册的信息进行登录,然后填好信息进行管理

三、测试kong的网关转发能力 

1、创建service,使用postman创建一个kong_service

2、基于刚刚创建好的kong_service来创建一个route

 

3、准备一个springboot项目,项目的请求路径如下:

 

4、将jar包上传到192.168.19.50这台服务器上,然后启动

nohup java -jar kong-demo-0.0.1-SNAPSHOT.jar --server.port=8080

5、在外部主机的浏览器上进行访问

192.168.19.50:8000/kong_service/hello

 192.168.19.50:8000/kong_service/hello/sub

 至此,我们已经成功安装了kong,并且成功创建了一个service及route,最后测试kong 能够成功进行请求转发

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

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

相关文章

3DMAX车缝线生成器插件使用方法详解

3dMax车缝线生成器插件,用于创建缝合对象和一个对象,以沿样条线或仅通过绘制选定边上的缝合之间的孔。 目前有两种类型的缝线,圆形缝线和平面缝线。对于给定类型的针脚,它们的厚度是最常用的。缝线的长度和间距以及旋转都可以很容易地调整,这些参数也可以随机设置,以创造…

vscode + CMake 构建C语言项目

文章目录 1. 所需工具2. 配置1. 编写顶级目录下的 CMakeLists.txt2. 编写子目录 src 里的 CMakeLists.txt3. 添加测试文件4. 开始构建 1. 所需工具 Visual Stduio Code(vscode) CMake 简介: CMake 是一个跨平台的 构建工具,用于 …

[论文阅读73]Prefix-Tuning:Optimizing Continuous Prompts for Generation

1. 基本信息 题目论文作者与单位来源年份Prefix-Tuning:Optimizing Continuous Prompts for GenerationXiang Lisa Li等 Stanford UniversityAnnual Meeting of the Association for Computational Linguistics2021 Citations 1009, References 论文链接&#xf…

基于java的超市管理系统设计与实现

摘 要 随着小型超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长,传统的人工记忆方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发…

EMNLP - 征集系统演示

Call For System Demonstrations - EMNLP 2023 EMNLP 2023 系统演示计划委员会邀请演示计划的提案。演示范围从早期研究原型到成熟的生产就绪系统。特别感兴趣的是公开可用的开源或开放访问系统。鉴于自然语言处理领域的理论和应用研究的现状,我们还强烈鼓励展示技术…

利用画图以及代码分析详细解读外排序的实现过程

外排序的实现 思想代码分析完整代码 如果有海量数据需要排序,而在内存中放不下这么多数据,因此就不能使用内排序(直接插入排序,希尔排序,堆排序,快速排序,归并排序等等)。关于想了解…

Java利用JOL工具分析对象分布

对象的组成 对象头[Header] Markword:存储对象自身运行时数据如hashcode、gc分代年龄等,64位系统总共占用8个字节,关于Markword详细内存分布如下 类型指针:对象指向类元数据地址的指针,jdk8默认开启指针压缩&#xff…

算法基础学习笔记——⑫最小生成树\二分图\质数\约数

✨博主:命运之光 ✨专栏:算法基础学习 目录 ✨最小生成树 🍓朴素Prim 🍓Kruskal算法 ✨二分图 🍓匈牙利算法 ✨质数 🍓(1)质数的判定——试除法 🍓(2&…

简单认识OSI(计算机网络分层)七层模型

前言 学校上课讲的太笼统啥也不是,自己学的太玄学似懂非懂突然在看到了一篇公众文文章。文章从初始到现在,步步为营的遇到一个解决一个前人的问题,有了细致入微的讲述,把之前学的死东西都连起来了。 如果让你来设计网络https://m…

chatgpt赋能python:Python取余数:介绍和实际应用

Python取余数:介绍和实际应用 Python是一种高级编程语言,其灵活性和多功能性使其成为开发者的首选之一。在Python中,取余数是常见的数学运算之一,这个操作在编写程序时非常有用。在本文中,我们将介绍Python中的取余数…

chatgpt赋能python:Python中单行输出的使用方法

Python中单行输出的使用方法 Python是广泛使用的高级编程语言之一,具有易于学习、可读性强和简单易用等优点。在Python编程中,我们经常需要输出文本内容,而Python中单行输出便是一个非常重要的功能。 什么是单行输出 单行输出是指将多个元…

TDengine 深入解析缓存技术

TDengine是一款高性能的物联网大数据平台。为了高效处理时序数据,TDengine中大量用到了缓存技术,自己实现了哈希表、缓存池等技术。本文会为大家讲解TDengine中用到的这些缓存技术。 首先会介绍一下什么是缓存,常用的缓存技术,最后…

想知道怎么翻译多个文本?我教你三个好方法吧

随着电子商务的全球化发展,越来越多的企业意识到将产品推向全球市场的重要性。在全球市场中,各种语言和文化的消费者都存在着巨大的潜在需求。为了吸引和服务这些不同语言的客户,企业需要采取一系列的措施,其中翻译是至关重要的一…

科技发展的那些事儿

近30年来,科技发展取得了惊人的成就,涉及范围广泛,包括计算机科学、通讯技术、生物医学、能源等多个领域。本文将列举近30年来科技发展的重要事件,并探讨这些事件对我们的生活、工作和社会产生的影响。 1991年,Linux操…

chatgpt赋能python:Python中可以用八进制表示整数吗?

Python中可以用八进制表示整数吗? Python是一种流行的动态编程语言,它支持许多整数表示方法。八进制是一种表示整数的方法,那么Python中可以使用八进制表示整数吗?本文将探讨这个问题。 什么是八进制? 在计算机科学…

基于SSM的服装设计供需系统设计与实现

摘 要:作为服装设计的重要形式之一,服装具有显著的审美性,是人类情感表达不可忽视的代表形态。但在新时期背景下,随着服装设计的进一步优化,服装设计创新融合强度也随之增强。本文就服装设计供需系统进行深入探究。 服…

chatgpt赋能python:如何在Python中去掉逗号

如何在Python中去掉逗号 在Python编程中,逗号是一个非常常见的符号,它通常用于分隔多个变量或值。然而,有时候我们需要从文本中去掉逗号,以便更好地处理数据。那么在Python中,如何去掉逗号呢?接下来&#…

华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路

一、题目描述 特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。 车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位&a…

idea使用Alibaba Cloud Toolkit插件远程操作Docker

idea使用Alibaba Cloud Toolkit插件远程操作Docker 前言 从github下载的开源项目源码,你基本上都能在项目根目录下发现会有个Dockerfile文件,Dockerfile文件是记录构建docker容器的构建命令,用途:一般用来将本地的jar包远程传输到…

内存对齐原则

struct (1)结构体第一个数据成员放在offset为0的地方,后面每个成员相对于结构体首地址的偏移量(offset)都是成员大小(该变量类型所占字节)的整数倍,如有需要编译器会在成员之间加上填…