服务网格 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 配置的团队来说是个不错的工具,只是要留意长连接对切分比例的影响。

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