使用 Kong Gateway 管理服务和路由

在这里插入图片描述

在 Kong Gateway 中,管理员通过对象模型来定义期望的流量管理策略。该模型中的两个重要对象是服务(Service)和路由(Route)。服务和路由的配置相互配合,定义了请求和响应在系统中的传递路径。

1. 服务和路由概述

在 Kong Gateway 中,请求通过路由到达服务,响应则沿相反的路径返回。下图展示了这一过程:

请求 -> 路由 -> 服务 -> 上游应用
响应 <- 服务 <- 路由 <- 请求

2. 什么是服务(Service)?

在 Kong Gateway 中,服务是对现有上游应用的抽象。服务存储了插件配置、策略等对象,并可以与路由关联。

配置服务

在创建服务时,管理员需要提供服务名称以及与上游应用的连接信息。连接详情可以通过以下方式提供:

  • 使用 url 字段作为单一字符串,或者
  • 分别提供协议(protocol)、主机(host)、端口(port)和路径(path)。

服务与上游应用的关系

服务与上游应用具有一对多关系,允许管理员创建复杂的流量管理行为。

3. 什么是路由(Route)?

路由是到达上游应用资源的路径。路由被添加到服务中,以便允许访问底层应用。在 Kong Gateway 中,路由通常映射到通过 Kong Gateway 应用公开的端点。路由也可以定义规则,将请求与关联的服务匹配。

配置路由

一个基本的路由应该包含以下信息:

  • 名称(name)
  • 路径(path)
  • 服务引用(引用一个现有服务)

你还可以为路由配置:

  • 协议:与上游应用通信的协议(例如 http、https)
  • 主机:与路由匹配的域名
  • 方法:匹配路由的 HTTP 方法
  • 请求头:匹配请求头中的值
  • 重定向状态码:HTTPS 状态码
  • 标签:将路由分组的可选字符串集

4. 管理服务和路由

以下教程演示了如何使用 Kong Gateway Admin API 管理和测试服务与路由。你还可以使用 Kong Konnect 或 decK 来进行配置管理。

4.1 创建服务

创建服务时,发送一个 POST 请求到 Kong Gateway 的 Admin API /services 路径。

示例命令:

curl -i -s -X POST http://localhost:8001/services \
  --data name=example_service \
  
Kong AI GatewayKong API Gateway 在面对生成式 AI 爆发时推出的解决方案,使用前需了解 Kong API Gateway 的基础使用Kong API Gateway 是云原生、平台无关、可扩展的 API 网关,具有高性能通过插件的可扩展性,还提供先进 AI 功能,支持多 LLM,具备代理、路由、负载均衡等功能,原生运行在 Kubernetes 上 [^1]。 ### 快速启动 先安装 Kong,可参考相关教程进行操作 [^1]。 ### 配置与功能使用 Kong 提供服务发现、负载均衡、请求代理、认证授权等能力,还能与云函数平台集成,通过插件机制实现功能扩展 [^3]。 - **RESTful API 与 GraphQL 支持**:支持 RESTful API GraphQL 协议,在配置 API 时可根据需求选择合适协议。 - **服务发现与负载均衡**:能让服务消费者自动发现服务并进行负载均衡。可在 Kong 配置中设置相关规则,使服务请求合理分配到不同后端服务。 - **请求代理**:可根据请求信息自动选择合适后端服务进行请求代理,需配置请求路由规则,让 Kong 依据规则转发请求。 - **身份认证与授权**:提供基于角色的访问控制(RBAC),可精细控制对 API 的访问权限。可在 Kong 中创建角色并分配权限,对不同用户或用户组进行访问控制。 - **日志记录与监控指标**:能记录 API 请求相关信息,提供强大监控指标。可配置日志记录的格式存储位置,利用监控指标实时跟踪 API 请求数量、响应延迟等情况。 - **插件机制**:可通过插件机制快速、轻松地自定义定制化的 API 网关。根据不同场景需求,选择合适插件并进行配置。 ### AI 功能使用 Kong AI Gateway 2023 年推出的 AI 网关解决方案包含以下特色功能 [^4]: - **多 LLM 代理**:可统一管理 OpenAI、Anthropic 等模型的调用。在 Kong 配置中添加对不同 LLM 模型的支持,实现统一调用管理。 - **Token 级管控**:按 token 数量进行计费限流。可设置 token 数量阈值计费规则,对 API 调用进行管控。 - **语义缓存**:基于内容理解实现智能响应缓存。配置语义缓存规则,让 Kong 根据请求内容进行缓存响应。 ### 部署方式 Kong 支持 Docker 镜像或源码安装部署,也提供 Kubernetes Helm Chart,可根据实际情况选择合适部署方式 [^3]。 ### 混合模式使用 在混合模式中,Kong Gateway 节点分为控制平面(CP)数据平面(DP)。控制平面负责管理配置信息并提供 Admin API 接口,数据平面负责请求路由。控制平面访问数据库,数据平面连接到控制平面节点获取最新配置信息 [^2]。 ```python # 示例代码:配置一个简单的 Kong API 服务 # 假设使用 Admin API 进行配置 import requests # 定义 Kong Admin API 地址 admin_api_url = "http://localhost:8001" # 创建一个服务 service_data = { "name": "my-service", "url": "http://backend-service:8080" } response = requests.post(f"{admin_api_url}/services", json=service_data) print(response.json()) # 创建一个路由 route_data = { "service.id": response.json()["id"], "paths": ["/my-path"] } response = requests.post(f"{admin_api_url}/routes", json=route_data) print(response.json()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值