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

相关推荐
源码12151 小时前
ASP.NET MVC宠物商城系统
后端·asp.net·宠物
Ai 编码助手2 小时前
Go语言 实现将中文转化为拼音
开发语言·后端·golang
hummhumm2 小时前
第 12 章 - Go语言 方法
java·开发语言·javascript·后端·python·sql·golang
杜杜的man2 小时前
【go从零单排】Directories、Temporary Files and Directories目录和临时目录、临时文件
开发语言·后端·golang
wywcool3 小时前
JVM学习之路(5)垃圾回收
java·jvm·后端·学习
喜欢打篮球的普通人3 小时前
rust高级特征
开发语言·后端·rust
代码小鑫4 小时前
A032-基于Spring Boot的健康医院门诊在线挂号系统
java·开发语言·spring boot·后端·spring·毕业设计
豌豆花下猫5 小时前
REST API 已经 25 岁了:它是如何形成的,将来可能会怎样?
后端·python·ai
喔喔咿哈哈5 小时前
【手撕 Spring】 -- Bean 的创建以及获取
java·后端·spring·面试·开源·github
夏微凉.5 小时前
【JavaEE进阶】Spring AOP 原理
java·spring boot·后端·spring·java-ee·maven