概述
- 在当今的微服务架构中,API网关扮演着至关重要的角色,它作为系统的统一入口
- 负责处理所有内外部请求,实现路由转发、负载均衡、安全控制、限流熔断等多种功能
- Kong,作为一个开源、高性能、可扩展的API网关,凭借其强大的插件系统和易于部署的特性,成为了众多企业和开发者的首选
- Kong的插件架构使得其功能扩展变得非常简单,用户可以根据自己的需求选择合适的插件来满足业务需求
- 在微服务架构日益盛行的今天,API网关成为了连接客户端与后端服务的关键组件
- Kong作为一款高性能、可扩展的API网关,凭借其强大的功能和灵活的插件机制,成为了许多企业的首选
环境搭建
- 文档参考:https://docs.konghq.com/gateway/latest/install/docker/
1 )准备相关镜像
- $
docker pull postgres:13
- $
docker pull kong/kong-gateway:3.7.0.0
2 )创建专属docker网络
- $
docker network create kong-net
3 ) 启动 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
4 ) 准备 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.7.0.0 kong migrations bootstrap
5 ) 启动 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.7.0.0
- 注意,这里的 KONG_LICENSE_DATA 是可选的,可以不用添加
- 如果有企业版, 则填入 license 作为环境变量
- $
export KONG_LICENSE_DATA='{"license":{"payload":{"admin_seats":"1","customer":"Example Company, Inc","dataplanes":"1","license_creation_date":"2017-07-20","license_expiration_date":"2017-07-20","license_key":"00141000017ODj3AAG_a1V41000004wT0OEAU","product_subscription":"Konnect Enterprise","support_plan":"None"},"signature":"6985968131533a967fcc721244a979948b1066967f1e9cd65dbd8eeabe060fc32d894a2945f5e4a03c1cd2198c74e058ac63d28b045c2f1fcec95877bd790e1b","version":"1"}}'
- 上述只是 官方提供的一个 example
- 有则,可选填入
- $
验证安装
- $
curl -i -X GET --url http://localhost:8001/services
HTTP/1.1 200 OK Date: Fri, 31 May 2024 00:09:57 GMT Content-Type: application/json; charset=utf-8 Connection: keep-alive Access-Control-Allow-Origin: http://localhost:8002 X-Kong-Admin-Request-ID: 53c753455d4d5616aea80450a1497b62 vary: Origin Access-Control-Allow-Credentials: true Content-Length: 23 X-Kong-Admin-Latency: 634 Server: kong/3.7.0.0-enterprise-edition
- 出现以上200就是安装成功了
进入 Kong Manager
- http://localhost:8002
默认是不需要密码登录的,如果需要配置用户登录,可以在下面进行配置
之后,我们可以进行相关的配置了
如果需要开通 企业版,可以体验更多功能
- 配置相关文档:https://docs.konghq.com/gateway/latest/kong-manager/