Kgateway v2.1 发布:融合AI网关的统一Kubernetes流量管理平台

Kgateway v2.1 作为 Kubernetes Gateway API 的开源实现正式发布。此版本集成了Agentgateway以提供AI连接能力,支持Gateway API 1.3.0和推理扩展1.0.0,并带来了全局策略、高级代理自定义、HPA、动态转发代理、会话亲和性及增强的可观测性等多项新特性,旨在统一管理传统、云原生及AI工作负载的流量。

Kgateway 是 Kubernetes Gateway API 的一个开源实现,它将入口、API 网关、服务网格和 AI 网关功能统一到一个单一的模块化控制平面中。专为高性能和灵活性而构建,它能确保和管理任何环境中传统、云原生和 AI 驱动工作负载的流量。

我们很高兴地宣布 kgateway v2.1 版本的发布,这是一个包含激动人心的新功能和改进的版本。以下是 kgateway 团队希望重点介绍的一些精选更新!

🌟 kgateway 2.1 有哪些新功能?

Agentgateway 集成

此版本标志着一个重要的里程碑——它是首个集成开源项目 agentgateway 的版本!Agentgateway 是一个高可用、高扩展性的数据平面,为 LLM、MCP 工具、AI 代理和推理工作负载提供 AI 连接能力。作为此次演进的一部分,我们开始弃用基于 Envoy 的 AI Gateway 和基于 Envoy 的推理扩展,因为所有相关功能现已通过 agentgateway 原生实现。对于 API 网关用例,您仍然可以继续使用基于 Envoy 的网关。

在此版本中,agentgateway 支持处于 Beta 阶段。如果您正在试用 agentgateway GatewayClass,建议您关注 Beta 版本发布动态,以便在实现完善过程中及时了解改进、错误修复和重大变更。

要开始使用 agentgateway,您只需使用以下 Helm 值安装 kgateway:

1
2
agentgateway:
  enabled: true

然后,如下所示创建一个使用 agentgateway GatewayClass 的 Gateway:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
kubectl apply -f- <<EOF
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1
metadata:
  name: agentgateway
  namespace: kgateway-system
  labels:
    app: agentgateway
spec:
  gatewayClassName: agentgateway
  listeners:
  - protocol: HTTP
    port: 8080
    name: http
    allowedRoutes:
      namespaces:
        from: All
EOF

现在您就可以试用 agentgateway 了。请查看 agentgateway 指南,了解如何将流量路由到 LLM 提供商、MCP 工具服务器或 AI 代理。

K8s GW API 1.3.0 和推理扩展 1.0.0

Kgateway 现已完全兼容 Kubernetes Gateway API 版本 1.3.0 和推理扩展版本 1.0.0。有关详情,请查看一致性测试报告:

  • Kubernetes Gateway API
  • 推理扩展

全局策略附加

默认情况下,您必须将策略附加到同一命名空间中的资源。现在,您可以启用一项功能来创建一个全局策略命名空间。这些全局策略可以通过标签选择器附加到集群中任何命名空间的资源。更多信息,请参阅全局策略附加文档。

外部认证和外部处理的深度合并策略

您现在可以为 extAuth 和 extProc 策略应用深度合并。此外,您可以使用 kgateway.dev/policy-weight 注解来确定多个 extAuth 和 extProc 策略合并时的优先级。更多信息,请参阅合并期间的策略优先级。

额外的代理 Pod 模板自定义

kgateway 现在提供了更多选项来自定义网关代理的默认 Pod 模板,包括 nodeSelectorsaffinitytolerationstopologySpreadConstraintsexternalTrafficPolicy 的配置。

更多信息,请参阅自定义网关。要查找所有可以更改的值,请参阅 GatewayParameters API 中的 PodTemplate 参考。

水平 Pod 自动扩缩

您可以将自己的水平 Pod 自动扩缩器(HPA)插件引入 kgateway。这样,您就可以基于 CPU 或内存消耗等阈值自动扩缩 kgateway 控制平面和数据平面的 Pod。有关更多信息,请参阅水平 Pod 自动扩缩 (HPA)。

动态转发代理

您现在可以配置网关代理使用动态转发代理(DFP)过滤器。此过滤器允许代理充当通用的 HTTP(S) 转发代理,而无需预先配置所有可能的上游主机。相反,DFP 在请求时使用 DNS 动态解析上游主机。有关更多信息,请查看动态转发代理 (DFP)。

会话亲和性

您现在可以为基于 Envoy 的网关代理配置不同类型的会话亲和性:

  • 更改默认负载均衡算法:默认情况下,传入请求会转发到请求最少的实例。您可以更改此行为,改为使用轮询或随机算法将请求转发到后端服务。
  • 一致性哈希:通过使用一致性哈希算法,在客户端和后端服务之间建立软会话亲和性。
  • 会话持久性:设置“强”会话亲和性或粘性会话,以确保来自客户端的流量在会话持续时间内始终路由到同一个后端实例。

增强的重试和超时能力

基于 Envoy 的网关代理的重试和超时能力得到了增强。请查看以下指南了解更多信息:

  • 请求重试
  • 请求超时
  • 每次尝试超时
  • 空闲超时
  • 空闲流超时

带离群值检测的被动健康检查

您现在可以配置被动健康检查,并通过离群值检测策略从不健康的负载均衡池中移除主机。离群值检测策略设置了一些条件(例如重试次数和剔除百分比),kgateway 使用这些条件来判断服务是否健康。当检测到不健康服务时,离群值检测策略定义了如何将该服务从接收流量的健康目标池中移除。有关更多信息,请参阅离群值检测。

新的 kgateway 运维仪表板

当您安装 OTel 堆栈时,现在可以利用新的 kgateway 运维仪表板(Grafana)。此仪表板概览了重要指标,例如转换和协调时间、总操作数、集群中的资源数量以及延迟。

🗑️ 已弃用或移除的功能

基于 Envoy 的网关代理对 AI Gateway 和推理扩展的支持已被弃用,并计划在 2.2 版本中移除。如果您想使用 AI 功能,请改用 agentgateway 代理。要了解更多关于我们认为 agentgateway 更适合作为智能体 AI 和 MCP 工作负载网关的原因,请查看此博客。

发行说明

请在我们的发行说明中查看 kgateway v2.1 版本的完整详情。

可用性

准备好开始了吗?请在 GitHub 上下载最新版本。然后,查看我们的入门指南以安装 kgateway。

感谢我们的贡献者!

Kgateway v2.1 版本包含了来自 42 位贡献者的 602 项贡献。请查看 v2.1 发布周期的项目开发统计数据。我们谨向所有贡献者表示诚挚的感谢!

此版本也标志着 kgateway 首次参与 LFX 导师计划!我们的学员在项目的各项计划中做出了贡献,包括 kgateway 的自动化规模测试、改进生态系统集成文档、AI 扩展的 OpenTelemetry 可观测性,以及 agentgateway 的可观测性改进。我们当前第三学期的学员之一 Aryan Parashar 也共同撰写了这篇博客!

参与进来

参与 kgateway 的最简单方式是加入我们的 Slack 和社区会议。

感谢您持续的反馈和支持!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计