服务网格 Istio 在 8 月 31 日发布了 1.31 版本,这次更新最核心的变化有两个:一是让 agentgateway 能以 Layer 7 路径代理(waypoint proxy)的身份跑在 ambient mesh 里,二是把发布产物(容器镜像、Helm chart)从 Google Cloud 全面迁移走。如果你所在团队正在用 Istio 的 ambient mesh 模式,或者还在从 gcr.io/istio-release 拉镜像,这次升级需要你特别留意。

先说说 agentgateway 是什么。它是由 Solo.io 捐赠给 Linux Foundation 的一个 Rust 数据面,专门为 agent 流量设计,除了普通 HTTP,还能处理 Model Context Protocol(MCP,一种让 AI 应用与外部工具/数据源交互的标准化协议)。在 1.30 版本里,agentgateway 还只是实验性的 gateway-only 集成,到了 1.31,它正式成为 ambient mesh 中的 L7 waypoint 代理,通过新的 istio-agentgateway-waypoint GatewayClass 来启用。这意味着你可以在 ambient mesh 里用 agentgateway 来处理 AI agent 的流量,而不必把它单独部署在 mesh 外面。1.31 还修复了 agentgateway 后端的 ListenerSet 处理和 mTLS 连接问题。

另一个值得关注的新机制是 waypoint 之间的流量切换(traffic shifting),目前还是 alpha 阶段,维护者明确警告 labels、annotations 和行为都可能变化。它的工作方式很巧妙:你可以在 service 或 namespace 上通过 use-waypoint-canary 标签指定一个 canary waypoint,然后用 use-waypoint-canary-weight 注解控制多少比例的新入站连接被切到 canary 上,整个过程不需要改动客户端。但要注意,已建立的连接不会被迁移,所以如果你的服务有大量长连接,实际观察到的流量切分比例会滞后于配置值。1.31.1 补丁修复了一个相关问题:当 agentgateway waypoint 只被作为 canary 引用时,它没有被正确编程上引用它的服务的路由和策略,导致被切换过去的连接被拒绝。

对于大型 mesh,有两个流量管理增强值得关注。第一个是 DestinationRule 和 MeshConfig 上新增的 zoneAwareLbSetting 字段,它让 Envoy 优先把流量路由到下游代理自身所在可用区(availability zone)的端点,只有当本地容量耗尽时才溢出到其他区域。这个决策由 Envoy 自动完成,不需要像 localityLbSetting 那样手动配置静态百分比,对多可用区部署的团队来说省心不少。第二个是 ALLOW_ANY_DYNAMIC_DNS 出站模式,它会在请求时从 HTTP Host 头解析主机名,这样你就不需要为每个外部目标手动写 ServiceEntry 了,对出口流量管理是个不小的简化。

安全方面,COMPLIANCE_POLICY 环境变量新增了 fips-140-3 选项,会把 TLS 限制在 1.2 及以上版本、FIPS 合规的密码套件以及 P-256 和 P-384 曲线。注意变更说明里特别强调:Go 组件必须用 Go 1.24 或更高版本、以 GOFIPS140=v1.0.0 或更高验证版本构建,仅仅设置运行时策略是不够的。另外 AuthorizationPolicy 新增了 trustDomains 和 notTrustDomains 字段,可以根据对端证书里的 trust domain 来匹配或排除请求,这对多集群或多租户场景的细粒度授权很有用。

最后是那个需要你动手的变更:Istio 正在把基础设施从 Google Cloud Platform 迁移到 Amazon Web Services,原因是资金模式变化。如果你还在用 gcr.io/istio-release、registry.istio.io 或 Google 托管的 Helm 仓库,需要在 10 月 13 日的下一次计划中断测试前完成迁移,这些旧端点将在 12 月正式退役。10 月 13 日 15:00-18:00 UTC 会禁用旧端点做 scream test,最终测试从 12 月 8 日 15:00 UTC 持续到 12 月 9 日 15:00 UTC。验证镜像签名的话还要注意密钥轮换:1.31.0 用 istio-key.pub,1.31.1 起改用 istio-key-v2.pub。有人问为什么选 Docker Hub 而不是 GHCR,维护者 Steven Jin 在 GitHub issue 里回复说 GHCR 有一些未文档化的限制,按 Istio 目前的用量很容易超限。

对大多数团队来说,这次升级的实际动作集中在镜像仓库迁移上,建议尽早测试新仓库的拉取和签名验证流程。如果你在用 ambient mesh 且对 AI agent 流量有需求,agentgateway 作为 waypoint 的能力值得在测试环境验证一下,尤其是 MCP 协议的支持。waypoint canary 的流量切换虽然还是 alpha,但对想逐步验证新 waypoint 配置的团队来说是个不错的工具,只是要留意长连接对切分比例的影响。

Accelerating Performance by Incrementally Integrating Rust into Existing Codebas
Accelerating Performance by Incrementally Integrating Rust into Existing Codebas
阅读原文 → 返回 AI 技术文档

内容与图片版权归原作者所有 · 原文: https://www.infoq.com/news/2026/10/istio-1-31-agentgateway/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global