深入理解API网关Kong:初识Kong网关
介绍
Kong是一个开源的、可扩展的、微服务 API 网关,它已经在全球范围内的各种规模的组织中广泛使用。Kong的设计原则是为了处理服务到服务的通信,通过提供功能丰富的平台,实现对API的全面管理。
Kong的核心优点在于其高度可扩展性和插件生态。由于其基于插件的架构,用户可以定制和扩展Kong的功能以满足特定的业务需求。插件范围从认证和授权,到限流、日志和监控等等,几乎可以涵盖API生命周期中的所有方面。
Kong还具有出色的性能和可靠性。由于它基于Nginx和OpenResty,因此能够处理大量的并发连接,并保持低延迟。同时,Kong也支持跨多个数据中心的分布式部署,提供了高度的可用性和故障转移能力。
Kong的另一个关键优势是其开源本质。这意味着它的源代码对公众开放,可以自由地使用和修改。这使得Kong拥有了强大的社区支持,其中包括开发者、用户和贡献者,他们不断地推动Kong的发展,提供新的功能,修复bug,以及提供有价值的反馈。
Kong不仅限于处理HTTP和HTTPS流量。它也支持gRPC, TCP, UDP, Websockets等多种协议,使得它可以在各种环境中发挥作用,包括但不限于云环境、本地环境,以及混合环境。
总的来说,Kong是一个功能强大,灵活且高度可扩展的API网关,适用于所有规模的组织。无论你是在构建一个复杂的微服务架构,还是只是需要一个能够有效管理API的工具,Kong都是一个值得考虑的选项。
官网地址:https://docs.konghq.com/gateway/latest/
安装Kong
官方的安装地址:https://docs.konghq.com/gateway/3.3.x/install/
这里我介绍使用docker来部署,默认已经安装好了docker和docker-compose
创建kong数据库
我已经提前安装了PostgreSQL数据,这里我就创建一个空的kong数据库和kong数据库用户
kong的docker-compose.yml
version: '3'
services:
kong:
image: kong:3.3.0
restart: always
command: >
/bin/sh -c "
kong migrations bootstrap;
kong start
"
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: 192.168.100.1
KONG_PG_PORT: 5432
KONG_PG_USER: kong_admin
KONG_PG_PASSWORD: kong_admin
KONG_PG_DB: kong
KONG_PROXY_ACCESS_LOG: /dev/stdout
KONG_ADMIN_ACCESS_LOG: /dev/stdout
KONG_PROXY_ERROR_LOG: /dev/stderr
KONG_ADMIN_ERROR_LOG: /dev/stderr
KONG_ADMIN_LISTEN: 0.0.0.0:8001, 0.0.0.0:8444 ssl
ports:
- 8000:8000
- 8443:8443
- 8001:8001
- 8444:8444
这里的command命令是用来初始化数据表的
command: >
/bin/sh -c "
kong migrations bootstrap;
kong start
"
启动完成后数据库会自动建好表,如下所示:
启动kong
在docker-compose.yml同级目录下执行启动命令:
sudo docker-compose up -d
启动成功后可以使用命令进行查看:
sudo docker-compose ps
还可以使用浏览器访问http端口来查看启动状态:
http://192.168.100.1:8001/
安装Konga
Konga是一个为Kong API Gateway设计的开源管理界面。它旨在为Kong API Gateway提供一个简单、易用的管理界面,帮助用户更加方便地管理和监控其API。
Konga的主要功能包括:
- 服务和路由管理:用户可以通过Konga轻松地创建、更新、删除和查看服务和路由。
- 插件管理:Konga支持Kong的所有插件,让用户可以更方便地配置和管理插件。
- 消费者管理:用户可以使用Konga管理API的消费者,包括创建消费者、分配API key、设置ACL等。
- 监控和警报:Konga提供了丰富的监控功能,包括实时图表、日志和警报,帮助用户实时了解API的使用情况。
- 集群管理:Konga支持管理多个Kong节点,非常适合在分布式环境中使用。
除了这些功能,Konga还提供了友好的用户界面和丰富的文档,使得用户可以更轻松地上手和使用。并且,由于Konga是开源的,用户可以根据自己的需求进行定制和扩展,也可以参与到Konga的开发和完善中来。
总的来说,Konga是一个功能丰富、易用且灵活的Kong管理工具,无论你是Kong的新手还是老手,都可以从Konga中受益。
Konga的docker-compose.yml
这里我们依旧使用docker来安装konga
version: '3'
services:
konga:
image: pantsel/konga:latest
ports:
- "1337:1337"
environment:
TOKEN_SECRET: the_secret_token
在docker-compose.yml同级目录下执行启动命令:
sudo docker-compose up -d
启动成功后可以使用命令进行查看:
sudo docker-compose ps
配置Konga
启动成功后访问http://192.168.100.1:1337
可以看到页面并且让你注册一个用户,注册完成后就可以用该账号登陆了,如下所示:
第一次登陆需要配置kong的地址http://192.168.100.1:8001,如下图所示:
配置完成后如下图所示:
到此安装配置完成。