言简意赅的讲解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 (楠博万)