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 (重复请求可以看到负载均衡效果)

相关推荐
canonical_entropy9 分钟前
金蝶云苍穹的Extension与Nop平台的Delta的区别
后端·低代码·架构
我叫啥都行1 小时前
计算机基础知识复习9.7
运维·服务器·网络·笔记·后端
无名指的等待7122 小时前
SpringBoot中使用ElasticSearch
java·spring boot·后端
.生产的驴2 小时前
SpringBoot 消息队列RabbitMQ 消费者确认机制 失败重试机制
java·spring boot·分布式·后端·rabbitmq·java-rabbitmq
AskHarries3 小时前
Spring Boot利用dag加速Spring beans初始化
java·spring boot·后端
苹果酱05673 小时前
一文读懂SpringCLoud
java·开发语言·spring boot·后端·中间件
掐指一算乀缺钱3 小时前
SpringBoot 数据库表结构文档生成
java·数据库·spring boot·后端·spring
计算机学姐6 小时前
基于python+django+vue的影视推荐系统
开发语言·vue.js·后端·python·mysql·django·intellij-idea
JustinNeil6 小时前
简化Java对象转换:高效实现大对象的Entity、VO、DTO互转与代码优化
后端
青灯文案16 小时前
SpringBoot 项目统一 API 响应结果封装示例
java·spring boot·后端