最近 Istio 1.22 发布包含大量的重大更新,本文将为你分享这个发布带来的新特性及应用建议。
虽然 Ambient 模式现已进入 Beta 阶段,但这并不意味着我们可以完全告别 Sidecar。尽管 Istio 官方宣称 Ambient 模式可以简化操作并显著减少内存和 CPU 使用,但它仍然存在局限性和潜在的复杂性问题。例如,虽然取消了 Sidecar,但需引入新的 ztunnel 和 waypoint 组件,这可能带来新的挑战。关于 Ambient 模式进入 Beta 模式的详细信息请参阅 Istio 官方博客。
Ambient 模式带来的新的挑战
关于 Sidecar 模式和 Ambient 模式的对比,详见 Istio Ambient 模式的局限性解析。
Istio Istio 1.22 版本中,关键 API 如流量管理、安全、Telemetry 相关的 API 都已正式升级到 v1
版本。你只需要将原有配置的 API 版本修改为 v1
即可,除此之外不需要任何更改。这些 API 早已成熟,你可以放心的使用 v1
版本,对于对稳定性要求较高的环境,Istio 添加了验证准入策略确保只有 v1
API 和字段可以在 Istio API 中使用。
例如下面的 AuthorizationPolicy 示例。
|
|
其他扩展类的 API 如 EnvoyFilter
、WasmPlugin
、ProxyConfig
还未成熟,因此还停留在 alpha 或 beta 阶段。关于 API 升级的更多信息,请参考 v1 API 博客。
v1
API,扩展类 API 尚未稳定为了保证系统稳定性,可以开启验证准入策略。
Gateway API 已更新至版本 1.1.0,现已普遍可用。这一更新扩展了 Istio 的流量管理能力,但需要注意 Istio 原生 API 与 Gateway API 的兼容性问题。在迁移到新 API 时应谨慎,以避免依赖尚未完全成熟的特性。更多详情,请查看 Gateway API v1.1 博客。
Istio 1.22 版本默认启用了增量 xDS,这是一个优化配置分发的机制。与传统的 State of the World(SotW)模式相比,增量 xDS 仅将变更的配置发送给 Envoy 代理,从而显著减少了网络传输的数据量和控制平面的资源消耗。这一变更尤其适用于配置频繁更新的大规模部署环境,能够提高配置更新的效率和性能。此外,增量 xDS 还有助于在网络环境复杂或配置动态变化的情况下,更高效地管理服务网格的配置更新。
更多关于 xDS 的介绍请参考Envoy xDS 及 Istio 中的配置分发流程介绍。
在 Istio 1.22 中,AuthorizationPolicy
新增了对路径模板的支持,极大增强了路径匹配的灵活性和精确性。而在此之前,AuthorizationPolicy
的路径配置并不支持通配符。此功能允许使用基于 Envoy 的 URI 模板匹配来定义 HTTP 请求中的路径。路径可以包括简单的通配符(*
和 **
)或具名变量,从而精确匹配单个或多个路径组件。例如,路径模板 /foo/{*}
能匹配 /foo/bar
但不匹配 /foo/bar/baz
,而 /foo/{**}/
则可以匹配任何以 /foo/
开头的路径。这种灵活的路径模板设计,特别适用于动态和复杂的路由规则,进一步加强了 Istio 的安全策略工具箱。
下图展示了 AuthorizationPolicy 的路径匹配的通配符规则。
了解更多关于路径模板的具体应用和规则,你可以参考 Envoy 的官方文档。
AuthorizationPolicy
中的路径匹配终于支持模板了,你不需要再在配置中一个一个地手动加入路径了。
Istio 1.22 版本引入了多项重要更新和改进,尽管某些特性被广泛宣传,但在实际使用中需要进行详细评估和适当的测试。希望本篇博客能帮助你更深入地理解和应用这些新特性,以在实际操作中获得最佳效果。
最后更新于 2024/10/08