前面两篇文章介绍了微服务为什么需要API网关及Kong网关的特点,本篇文章就实际安装部署Kong,看看Kong的目录结果及是如何配置管理的,加深对Kong的理解。
本次安装是采用单机模式,操作系统环境是CentOS7.6
# 下载安装包
curl -Lo kong-enterprise-edition-3.4.1.1.rpm $(rpm --eval https://packages.konghq.com/public/gateway-34/rpm/el/%{rhel}/x86_64/kong-enterprise-edition-3.4.1.1.el%{rhel}.x86_64.rpm)
# rpm安装
rpm -ivh kong-enterprise-edition-3.4.1.1.rpm
# 安装postgresql
yum install postgresql15-contrib postgresql15-server
systemctl enable postgresql-15
# 创建数据库及用户名密码
CREATE USER kong WITH PASSWORD 'super_secret'; CREATE DATABASE kong OWNER kong;
安装完成后,可以在/etc/kong/kong.conf中查找Kong的配置文件:
# 修改/etc/kong/kong.conf中数据库的用户名和密码
vim /etc/kong/kong.conf
pg_user = kong
pg_password = super_secret
# 迁移kong的配置到数据库
kong migrations bootstrap -c /etc/kong/kong.conf
# 启动kong
kong start -c /etc/kong/kong.conf.
2.4 验证Kong的运行状态
Kong的配置管理非常灵活,可以通过多种方式进行配置。以下是主要的配置管理方式:
➢ 编辑kong.conf文件:Kong的配置文件位于/etc/kong/kong.conf中。可以通过编辑kong.conf文件来配置Kong网关。在kong.conf文件中,可以指定数据库连接、代理设置、插件配置、路由配置和服务配置等选项。
➢ 使用Kong的REST API:Kong提供了REST API,可以使用API管理插件来创建、更新和删除Kong对象,例如插件、路由和服务等。可以使用curl或其他HTTP客户端来访问Kong的REST API。
➢ 使用图形化界面来管理,业界使用比较多的是konga,github上面星星数量也远多于Kong自带的Kong Manager。后面我们就试试konga
这里我对kong还不熟悉,就先通过REST API来管理kong,熟悉过程及配置参数。
Kong提供了一个API管理插件,可以通过API管理Kong对象。本小节就通过Plugin这个插件,演示API用法。
➢ 安装jq,用于命令行显示json
➢ 确认8001端口已启动
从下面命令输出,可以看到没有安装插件
[root@VM-4-13-centos ~]# curl -s http://localhost:8001/plugins | jq
{
"data": [],
"next": null
}
[root@VM-4-13-centos ~]# curl -s -X POST http://localhost:8001/plugins --data name=rate-limiting --data config.minute=5 --data config.policy=local | jq
{
"enabled": true,
"route": null,
"config": {
"error_code": 429,
"redis_port": 6379,
"minute": 5,
......
"service": null,
"id": "8030270c-d5f8-4f87-8342-f400376c8975",
"name": "rate-limiting",
"consumer": null,
"updated_at": 1699516789
}
curl -X DELETE http://localhost:8001/plugins/e35151fc-36a7-4679-b940-a4e1a0c400a4
没有报错即为成功
本文实践安装了Kong并演示了如何通过API管理Kong,后面通过一个实例,走完Kong网关如何代理一个API提供服务并且展示常用的 API功能:限流、鉴权等
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。