如何使用 Konga 可视化管理 Kong API 网关:完整指南与常见场景实例
当你使用 Kong 作为 API 网关时,Konga 提供了一个简单而强大的 Web UI 来帮助你管理和监控 API 配置。本文将详细介绍如何通过 Konga 管理 Kong,包括如何创建服务、配置路由、启用插件、管理消费者以及查看 API 流量和日志。无论你是开发者、运维人员还是 API 管理员,Konga 都能通过可视化界面简化复杂的 Kong 配置和监控任务。通过本指南,你将掌握 Kong
言简意赅的讲解Konga解决的痛点
Kong 是一个流行的 API 网关,广泛应用于微服务架构中,为应用提供负载均衡、API 管理、身份验证、流量控制等功能。虽然 Kong 强大且功能丰富,但其管理界面原本基于命令行和配置文件,可能让部分开发者或运维人员感到不便。为了简化管理操作,Konga 作为一个开源的、基于 Web 的可视化管理平台应运而生。它让用户能够通过图形化界面轻松管理 Kong,实现 API 的可视化监控、配置和管理。
本文将详细介绍 Konga,并展示其常见使用场景,帮助大家快速上手。注意
konga单独使用没有意义需要与之前讲解的kong配合服用
1. 什么是 Konga?
Konga 是一个开源的 Web UI,用于与 Kong 管理 API 网关。它为 Kong 提供了一个直观的界面,允许用户在无需手动编辑配置文件的情况下,通过简单的点击和输入来配置和监控 API 网关。Konga 是用 Node.js 和 Vue.js 构建的,支持自托管和 Docker 部署,安装和使用都非常简单。
Konga 主要有以下功能:
- API 管理:可视化管理 API 路由、服务、消费者等配置。
- 插件管理:支持插件的启用、配置和禁用。
- 负载均衡管理:查看和管理服务的负载均衡配置。
- 监控与日志:实时查看 API 的访问统计和日志。
2. 如何安装 Konga
2.1 使用 Docker 部署
Docker 是最简便的部署方式。首先,确保你已经安装了 Docker。然后,可以通过以下命令来启动 Konga:
docker run -d \
--name konga \
-p 1337:1337 \
pantsel/konga
-p 1337:1337
:将 Konga 的 Web 界面暴露在本地的 1337 端口上。
完成后,可以通过浏览器访问 http://localhost:1337
来打开 Konga。
2.2 使用 Konga 安装 Docker 镜像
如果你喜欢使用 Docker Compose,可以参考以下 docker-compose.yml
配置文件:
version: '3'
services:
konga:
image: pantsel/konga
container_name: konga
ports:
- "1337:1337"
depends_on:
- kong
restart: always
在这个配置中,KONGA_API_URL
是指向 Kong Admin API 的地址。如果你的 Kong 实例和 Konga 在同一网络下,可以使用容器名称(比如 kong
)作为 Kong 地址。
3. 连接 Konga 和 Kong
启动 Konga 后,通过浏览器访问 Konga 的 Web UI(通常是 http://localhost:1337
)。首次访问时,你需要配置 Konga 连接到你的 Kong 实例。
在 Konga 的登录页面上,你需要填写 Kong Admin API 的 URL,以及其他基本配置信息:
- Kong Admin URL:填写 Kong 管理接口的 URL 地址,例如
http://localhost:8001
。 - Konga Username/Password:Konga 会要求你设置管理员账号,用来登录管理界面。
完成配置后,点击 “Connect” 即可成功连接到 Kong。
4. Konga 常用功能场景
4.0 在 Konga 中管理 Upstreams
Konga 提供了可视化的界面来管理 Kong 的 Upstreams,用户可以通过 Konga UI 轻松创建、编辑和删除 Upstreams,以及管理其中的 Targets。
4.0.1 创建 Upstream
在 Konga 中创建一个 Upstream 的步骤如下:
-
登录到 Konga 管理界面。
-
在左侧菜单中选择 “Upstreams”,然后点击右上角的 “Add New Upstream” 按钮。
-
填写 Upstream 的基本信息:
- Name:为 Upstream 指定一个名称。
- Hash On:选择请求分发的策略,可以选择
ip
、none
等。 - Load Balancing Algorithm:选择负载均衡算法(如
round-robin
、least-connections
等)。
-
点击 “Save” 保存 Upstream 配置。
此时,一个新的 Upstream 就被创建了,它的作用是承载并管理与多个目标(Targets)相关的后端服务。
4.0.2 添加 Targets 到 Upstream
创建好 Upstream 后,接下来需要将后端服务(Targets)添加到该 Upstream 中。
-
在 Konga 的 Upstreams 页面中,选择刚刚创建的 Upstream。
-
在 Upstream 的详情页面中,找到 Targets 部分,点击 “Add New Target” 按钮。
-
填写目标服务的信息:
- Target:填写后端服务的 IP 地址或主机名。
- Port:填写目标服务的端口号。
- Weight:设置该 target 的权重,权重高的 target 将接收更多的请求。
- Tags:可选的标签,用于标识目标。
- Weight:配置权重,权重越高的 target 获取到的流量就越多。
-
点击 “Save” 保存 Target 配置。
添加完成后,Kong 就会将流量按照负载均衡策略分发到这些 Targets 上。
4.0.3 编辑和删除 Upstreams 和 Targets
在 Konga 中,你还可以随时编辑或删除 Upstream 和 Targets 配置。
- 编辑 Upstream:在 Upstreams 页面中,点击你想要编辑的 Upstream,修改它的名称、负载均衡策略或其他配置,保存更改。
- 删除 Upstream:在 Upstreams 页面中,选择要删除的 Upstream,点击 “Delete” 按钮删除该 Upstream。删除时,系统会提示你是否确认删除。
- 编辑 Target:在目标服务列表中,点击某个 Target 来编辑它的 IP 地址、端口或权重等配置。
- 删除 Target:在 Target 列表中,点击 “Delete” 按钮删除不再需要的 target。
4.0.4 Upstream 的高可用性与负载均衡策略
Kong 提供了多种负载均衡策略供用户选择,具体包括:
- Round-robin:轮询负载均衡,流量平均分配给每个 target。
- Least-connections:将请求转发给连接数最少的 target,适用于服务性能差异较大的场景。
- Random:随机选择一个 target 来处理请求。
在 Konga 中,选择负载均衡策略时,你可以根据具体场景来选择最合适的策略。例如,如果你的后端服务实例的性能差异很大,least-connections
可能是更优的选择。
4.1 创建和管理 API 服务
在 Konga 中,你可以方便地创建和管理 Kong 服务。具体步骤如下:
- 登录到 Konga Web UI。
- 在左侧菜单中选择 “Services”。
- 点击 “Add New Service” 按钮,填写服务信息。
- Service Name:填写服务的名称。
- URL:填写服务的后端 URL。
- Protocol:选择协议(如 HTTP、HTTPS)。
- 点击 “Save” 保存服务。
此时,Konga 会将新服务添加到 Kong 中,后续你可以通过 Konga UI 轻松查看和编辑服务配置。
4.2 创建和管理 Routes
Route 是将外部请求路由到服务的规则。可以通过 Konga UI 创建和管理 Routes。
- 在 Konga 的侧边栏中选择 “Routes”。
- 点击 “Add New Route”。
- 填写 Route 的信息,包括:
- Name:为路由指定名称。
- Service:选择已创建的服务。
- Paths:定义请求的路径。
- Methods:选择允许的 HTTP 方法(如 GET、POST)。
- 点击 “Save” 完成创建。
完成后,Konga 会自动将路由配置添加到 Kong 中,所有通过该路由访问的请求都会被转发到对应的服务。
注意
在我的用例中 localhost:{KongPort}/gitea/home/ 就可以访问到gitea服务。
如果你们得场景在转发之后还要加URI的话那就需要在Service.path中添加。文章始终不能覆盖全部场景,还要靠你们自己钻研咯。
4.3 管理消费者和身份验证
Kong 提供了强大的消费者(Consumer)管理功能。通过 Konga,可以轻松为消费者启用身份验证、限制访问等功能。
- 在左侧菜单中选择 “Consumers”。
- 点击 “Add New Consumer” 创建新的消费者。
- Username:填写消费者的用户名。
- Custom ID:可选的自定义 ID。
- 创建完消费者后,你可以为其配置插件,例如:
- Key Authentication:启用 API 密钥认证。
- Basic Authentication:启用基本认证。
4.4 管理插件
Kong 提供了丰富的插件支持,如身份验证、流量限制、CORS 等,Konga 使得插件管理变得更简单。
- 在侧边栏中选择 “Plugins”。
- 选择要启用插件的服务或路由。
- 点击 “Add Plugin”,选择要启用的插件类型。
- 配置插件的参数,并保存。
例如,若要启用 Rate Limiting 插件来限制访问频率:
- 选择 Rate Limiting 插件。
- 配置插件的参数,例如每分钟请求次数限制。
- 保存配置后,插件会生效。
4.5 查看 API 日志和监控
Konga 还可以集成 Kong 的监控功能,实时查看 API 的访问情况和日志。
- 在 Konga 中选择 “Metrics” 或 “Logs”。
- 查看流量统计、错误日志等信息。
- 如果启用了统计插件(如 Prometheus),你还可以通过 Konga 获取更加详细的 API 性能数据。
5. Konga 使用中的一些注意事项
- 权限控制:Konga 支持权限管理,你可以为不同的用户设置不同的角色,限制其访问的范围。例如,开发者可以只访问服务和路由配置,运维人员可以访问插件和监控功能。
- 备份和恢复:Konga 支持导出和导入配置,方便备份和恢复。你可以在 “Backup” 菜单下进行操作。
6. 总结
Konga 是一个非常实用的工具,能够帮助开发者和运维人员简化 Kong 的管理工作。通过其图形化界面,用户能够快速配置、监控和管理 API 网关。无论是创建服务、配置路由,还是管理插件、查看日志,Konga 都提供了一个直观、易用的方式。
如果你还在使用 Kong 的 CLI 或配置文件进行管理,试试 Konga,它会让你在日常管理中事半功倍。
通过上述内容,你就已经基本理解了这个方法,基础用法我也都有展示。如果你能融会贯通,我相信你会很强
Best
Wenhao (楠博万)
更多推荐
所有评论(0)