Kong网关的部署与配置

Kong简介

Kong是一个开源的云原生API网关和微服务管理平台,它可以帮助开发人员和团队轻松构建、部署和管理现代的API和微服务架构。Kong提供了丰富的功能,包括流量控制、认证和授权、日志记录、监控和安全性等,可以帮助用户更好地管理他们的API和微服务。Kong还支持插件化扩展,用户可以根据自己的需求选择合适的插件来增强网关的功能。Kong已经被广泛应用于各种规模的企业和组织中,成为他们构建和管理API和微服务的首选解决方案之一。

Docker部署Kong

Kong网关需要数据库持久化配置信息、路由规则、插件配置等,可以使用Cassandra或者PostgreSQL数据库,下面我们以PostgreSQL为例

  1. 创建一个Docker network

    需要创建一个自定义网络,以允许容器相互发现和通信。在此示例中,kong-net是网络名称,您可以使用任何名称。

sh 复制代码
docker network create kong-net
  1. 启动数据库
sh 复制代码
docker run -d --name kong-database \
           --network=kong-net \
           -p 5432:5432 \
           -e "POSTGRES_USER=kong" \
           -e "POSTGRES_DB=kong" \
           -e "POSTGRES_PASSWORD=123456" \
           -e "POSTGRES_HOST_AUTH_METHOD=trust" \
           postgres:9.6
  1. kong数据库初始化
sh 复制代码
docker run --rm \
    --network=kong-net \
    -e "KONG_LOG_LEVEL=debug" \
    -e "KONG_DATABASE=postgres" \
    -e "KONG_PG_HOST=kong-database" \
    -e "KONG_PG_PASSWORD=123456" \
    -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
    kong:latest kong migrations bootstrap
  1. kong启动配置
sh 复制代码
docker run -d --name kong \
 --network=kong-net \
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=kong-database" \
 -e "KONG_PG_PASSWORD=123456" \
 -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
  1. konga可视化部署

konga是kong的可视化插件,通过konga可以页面配置代理和插件等。

初始化konga数据库

sh 复制代码
docker run --rm --network=kong-net --link kong-database pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:123456@kong-database:5432/konga

konga启动配置

sh 复制代码
docker run -itd -p 1337:1337 --network kong-net --name konga \
--link kong-local --link kong-database \
-e "NODE_ENV=production" \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgresql://kong:123456@kong-database:5432/konga" \
pantsel/konga:latest

kong的配置

  1. 访问konga: http://localhost:1337
  2. 注册用户
  3. 链接kong

需要点击链接才连接到kong

到底这里就已经顺利链接上kong网关了,接来可以配置代理和插件了,但是在配置之前,我们简单介绍一下kong的模型

由上图模型可知道有两条链路,取决于要不要配置负载均衡,这里我们两条链路都来配置一下

非负载均衡配置

目标代理地址是http://192.168.0.115:8080/

  1. 首先配置service

2.配置router (router提供了很多匹配模式,示例以path匹配) 3.访问kong的8000端口: http://localhost:8000/test 可以看到已经代理到我们的目标地址8080端口的服务

负载均衡配置

目标是将请求负载均衡到本地服务的8080端口和8887端口

  1. router的配置保持与上面不变
  2. 配置upstream

3.配置traget (负载到多少个服务就有多少个traget) 4.修改service配置 5.访问 http://localhost:8080/test (重复请求可以看到负载均衡效果)

相关推荐
一只游鱼6 分钟前
我的第一个微服务项目cy-fang1.0
java·后端·spring cloud
JavaGuide7 分钟前
对标MinIO!全新一代分布式文件系统诞生!
数据库·后端
喵个咪11 分钟前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:基于 Ent 从零实现新服务
后端·go·orm
文心快码BaiduComate19 分钟前
Comate Spec模式实测:让AI编程更精准可靠
前端·后端·前端框架
哈哈哈笑什么24 分钟前
3 次生产系统崩溃复盘:Java 后端从踩坑到封神的排查优化之路
java·后端·性能优化
ServBay25 分钟前
MongoDB 的文档模型与 CRUD 实战
数据库·后端·mongodb
哈哈哈笑什么28 分钟前
Sleuth+Zipkin 与 OpenSearch 结合是企业级分布式高并发系统的“王炸组合”
分布式·后端·spring cloud
开心猴爷35 分钟前
App HTTPS 抓包实战解析,从代理调试到真实网络流量观察的完整抓包思路
后端
shengjk141 分钟前
为什么按 Ctrl+D 会退出终端?—— 从电传打字机到现代 macOS 的完整旅程
后端
白宇横流学长42 分钟前
基于SpringBoot医院复查开药网站和微信小程序的设计
spring boot·后端·微信小程序