Kubernetes Gateway API:工程视角解析 - Kong公司
文章目录
Kubernetes Gateway API 的工程视角解析
Kubernetes Gateway API 是一个重要的网络资源管理工具,它通过将路线与入口解耦,为用户引入了多种类型的路由(如 L4 和 L7),并为未来扩展新的路由类型提供了可能性。本文将从工程视角解析 Gateway API 的核心功能及其应用场景。
支持的路由类型与新增功能
Gateway API 当前支持多种路由类型(处于不同成熟度级别),并在此基础上添加了全新的路由功能,旨在为用户提供更灵活的网络配置能力。
HTTPRoute 的功能解析
HTTP 请求标头匹配
在 HTTPRoute 中,Headers 字段支持 HTTP 请求标头匹配。多个匹配值被视为逻辑 AND,即请求必须匹配所有指定的标头条件,才能选择对应的路由。
HTTP 方法匹配
通过 HTTPRoute 的 Method 字段,用户可以指定需要匹配的 HTTP 动词。只有当请求的 HTTP 方法与指定值一致时,路由才会生效。
HTTP 查询参数匹配
QueryParams 字段允许用户指定请求中必须包含的查询参数。多个查询参数的匹配条件同样为逻辑 AND,即请求需满足所有指定参数条件,才能匹配到路由。
HTTP 路由后端权重
HTTPRoute 的 backendRef 支持设置后端权重,用于控制请求分发比例。权重计算公式为:
权重 / (此后端参考列表中所有权重的总和)
例如,若服务 A 的权重为 200,服务 B 的权重为 100,则约 2/3 的请求会被分发到服务 A。
HTTPRoute 筛选器
HTTPRoute 筛选器提供了对路由行为的进一步控制,例如修改请求标头或启用请求镜像。用户还可通过 ExtensionRef 字段附加自定义筛选器,例如将 Kong 插件集成到路由中。
跨命名空间引用的支持
与传统的 Ingress API 不同,Gateway API 支持跨命名空间引用对象。这种功能主要应用于以下场景:
-
跨命名空间的服务引用
命名空间 A 中的“网关”和“路由”可以引用命名空间 B 中的服务。默认情况下,这种引用是被阻止的,但可以通过ReferenceGrantAPI 启用。 -
跨命名空间的网关配置
命名空间 B 中的“路由”可以配置命名空间 C 中的“网关”。此功能默认也被阻止,但可以通过AllowedRoutes字段启用。
从 Ingress 迁移到 Gateway API
Ingress2gateway 是一个专注于将 Ingress 和特定提供商资源(CRD)转换为 Gateway API 资源的项目。它基于提供者的实现方式,允许任何 Gateway API 实现贡献自己的提供者,将与 Ingress 相关的注释和 CRD 转换为 Gateway API 资源。
Kong 已实现了自己的提供者,并支持以下功能的迁移:
- HTTPRoute 标头匹配
- HTTPRoute 方法匹配
- 插件引用转换为 HTTPRoute 的 ExtensionRef 筛选器
- TCPIngress 转换为 Gateway、TCPRoute 和 TLSRoute
- UDPIngress 转换为 Gateway 和 UDPRoute
Gateway API 的标准化扩展
Gateway API 提供了一种标准化方式来为 API 添加功能。通过其灵活的架构设计,用户可以更高效地管理和扩展 Kubernetes 网络资源。
结论
Gateway API 是 Kubernetes 历史上最具协作性的 API 之一,由多个供应商和社区成员共同推动,确保其成为一个长期适用的标准。随着 Gateway API 的正式发布,它已经可以在生产环境中使用,为用户提供了更强大的网络管理能力。
原文链接: https://konghq.com/blog/engineering/kubernetes-gateway-api-engineering-perspective
最新文章
- api 认证与授权的最佳实践
- 什么是GraphRAG
- 如何获取 Notion 开放平台 API Key 密钥(分步指南)
- DeepSeek-R1 调用 MCP 天气API服务教程:MCP 客户端与服务端入门
- 旅游供应商的Travel Booking APIs [Onix概览]
- 使用 Web Share API 实现图片分享
- 学习与设计rest api的顶级资源
- 十大企业级 API 管理工具全景指南
- Meta×Google 云计算协议:2025 多云/混合云 API 极速落地 AI 出海成本降 40%
- Kimi Chat API入门指南:从注册到实现智能对话
- 5种最佳API认证方法,显著提升…
- API接口重试的8种方法