Istio 1.20 有哪些更新?

Istio 1.20 带来关键更新:全面支持 Gateway API、ExternalName 优化、Envoy 过滤器统一排序等,提升服务网格灵活性和性能。

版权声明
本文为 Jimmy Song 原创。转载请注明来源: https://jimmysong.io/blog/istio-120-release/
查看本文大纲

Istio 1.20 代表了 Istio 服务网格能力的显著进步,为运维人员和开发人员提供了更好的体验。这个新版本引入了一些关键的功能和更新,将影响到服务网格架构的设计和实施。

Gateway API 支持

Istio 1.20 全面支持 Kubernetes Gateway API,并已正式发布(GA)。这标志着服务网格生态系统的重大进步,为用户提供了一组稳定且丰富的网络 API,与 Kubernetes 的核心服务相一致。Istio 对 Gateway API 的支持是实现更无缝和灵活的流量管理的重要一步,使用户能够利用一致的声明方式定义在 Kubernetes 集群内如何路由流量。如果你想了解更多关于 Gateway API 的信息,可以阅读我的博客 Istio 1.19 有哪些更新:Gateway API 还有更多

增强的 ExternalName 服务支持

在服务发现领域,Istio 1.20 对于ExternalName服务的处理进行了重要更新(见 Better support ExternalName #37331),使得 Istio 的行为更加符合 Kubernetes 的行为。这个变化简化了配置,并使得 Istio 能够更好地处理 DNS,对于依赖于外部终点的服务至关重要。关于 ExternalName 服务的更多信息,你可以参考 Kubernetes 官方文档

ExternalName 和 Istio 中的 ServiceEntry 都可以用于处理服务发现,特别是引入 Kubernetes 集群之外的服务,但有一些关键区别:

  • ExternalName 是 Kubernetes 的原生 Service 类型,相当于给集群外部服务这设置了一个别名,使得外部服务在 Kubernetes 内部的表现与原生 Service 保持一致,从而可以统一管理和使用内部和外部服务。你可以先定义 ExternalName 类型的服务,如果后来你决定将服务移到集群中,则可以启动其 Pod,添加适当的选择算符或端点并更改服务的类型。使用时需要注意不要在多个命名空间中使用相同的 ExternalName,可能会引起命名冲突或混淆。
  • ServiceEntry 是 Istio 特有的配置对象,它提供了更灵活的控制,可以描述网格内或网格外的服务,以及指定特定的协议、端口等属性。例如,可以使用ServiceEntry将网格内服务访问网格外的服务,或者定义自定义的服务入口点。

其他更新

一致的 Envoy 过滤器排序: 在新版本中,Envoy 过滤器的排序在所有流量方向和协议上变得一致了。这确保了过滤器的统一应用,对于服务网格的可预测行为和安全性至关重要。

网络 Wasm 插件扩展: Istio 继续通过引入新的NETWORK类型扩展网络 Wasm 插件的支持,推动了可扩展性的边界。这个扩展巩固了 Istio 作为服务网格创新领域的领导地位,为用户提供了更多的控制和定制选项。

TCP 元数据交换增强: Istio 1.20 中的两个更新旨在改进 TCP 元数据交换:回退元数据发现过程和控制 ALPN 令牌的能力。这些改进显示了 Istio 对强大高效的网络的承诺。

流量镜像到多个目的地: 新版本扩展了 Istio 的流量镜像功能以支持多个目的地。这个功能对于调试和监控非常宝贵,可以提供关于跨不同服务版本或配置的流量行为的见解。

可插拔的根证书轮换: 加强了安全性,Istio 现在支持可插拔的根证书轮换,增强了服务网格在使用更新的加密凭证时保持服务间信任的能力。

Sidecar 容器中的 StartupProbe: 为了改善启动时间,Istio 在 Sidecar 容器中引入了startupProbe,它可以在初始阶段进行积极的轮询,而不会在整个 Pod 的生命周期中持续存在。

OpenShift 安装增强: 通过去除某些特权要求,Istio 简化了在 OpenShift 上的安装过程,从而降低了 OpenShift 用户的使用门槛。

总结

在 Istio 1.20 中的这些功能和增强将简化运维操作,加强安全性,并提供更具动态和可定制的服务网格体验。随着服务网格领域的不断发展,Istio 的最新版本证明了社区对改进和创新的不懈追求。

最后更新于 2024/12/12