Istio 迎来版本 1.0:一种开源的 Service Mesh

Posted 云头条

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Istio 迎来版本 1.0:一种开源的 Service Mesh相关的知识,希望对你有一定的参考价值。

Istio是一种服务网格(service mesh),面向谷歌、IBM、Lyft、Red Hat及开源社区的其他众多厂商,它在今天终于迎来了1.0版本。


如果你不熟悉服务网格,这可以了解。很少有人了解服务网格。但Istio可能是眼下最重要的新开源项目之一。它正处于许多行业潮流的交汇点,比如容器、微服务和Serverless计算,它让企业更容易积极接受这些技术。Istio现在已有200多个贡献者,自版本0.1发布以来,代码签入已有4000多次。


究其核心而言,Istio满足微服务在路由、负载均衡、流量控制和安全等方面的要求。它位于现有的分布式应用程序之上,帮助这些应用程序安全地相互联系,同时还提供日志、遥测和必要的策略,确保一切得到控制(和保障)。它还支持金丝雀版,这让开发人员得以在向更广泛的用户推出更新之前,先在少数用户当中进行测试,这是谷歌及其他大规模计算公司长期以来在内部采取的做法。


Istio的生态系统在去年取得了长足发展。Envoy保持迅猛发展的势头,增添了对生产级服务网格来说至关重要的众多功能。Datadog、SolarWinds、Sysdig、谷歌Stackdriver和亚马逊CloudWatch等可观察性技术提供商编写了插件,将Istio与各自的产品整合起来。Tigera、Aporeto、Cilium和Styra为Istio策略执行和网络功能构建了插件。Red Hat开发了Kiali,为网格管理和可观察性增添了漂亮的用户界面。Cloud Foundry的下一代流量路由堆栈构建在Istio之上,最近宣布的Knative Serverless项目如出一辙,Apigee宣布计划把Istio用在其API管理解决方案中。社区在去年增添了将Istio与自家技术整合起来的众多厂商,以上只是其中几家。


谷歌的产品经理詹妮弗•林(Jennifer Lin)称:“在微服务领域,节奏非常快。由于Kubernetes和围绕容器编排的抽象机制取得了成功,Istio这个开源项目由此设立,真正迈出了下一步,它不仅为基于虚拟机的工作负载进入到服务管理层提供了一条路径,还是微服务开发的基础。所以,它其实专注于为服务提供合适的抽象级别,并为管理这方面提供了一致的环境。”


即使在1.0发布之前,许多公司已经在生产环境中采用了Istio,包括eBay和英国最大的汽车交易网站Auto Trader UK等公司。林认为,这表明Istio解决了许多公司企业在采用微服务时面临的问题。“许多要求更高的客户试图构建自己的服务管理层,虽然我们尚未宣布1.0,但我们有许多客户(包括数量惊人的大型企业客户)在说‘你知道,就算不是1.0,我也很乐意将这个技术部署到生产环境,因为我在比较后发现,其他技术要原始得多。’”


IBM院士兼云副总裁贾森•麦吉(Jason McGee)对此表示赞同,特别指出“自Istio发布以来,我们的使命就是,让每个人都能借助微服务取得成功,尤其是在企业界。这就是为什么我们让社区的重点放在改善安全、扩大规模上,并且运用我们从为大大小小的公司构建敏捷云架构方面学到的知识,为个开源项目做贡献。”


现在许多知名云厂商也直接支持Istio。比如说,IBM在其Kubernetes服务上支持Istio;除了为在Kubernetes和Istio上构建的应用程序提供一些额外的开源工具外,谷歌甚至宣布为谷歌云用户提供一种托管的Istio服务。


微软和亚马逊是缺席今天这场派对的两大厂商。如果这个项目保持发展势头,这种情况会随着时间的推移而改变。


Istio目前还不是任何重要开源基金会的一部分。Kubernetes的大本营云原生计算基金会(CNCF)在支持linkerd,这个项目与Istio并没有很大的区别。一旦这类项目的1.0版本推出,维护人员常常开始寻找能够长期监管项目发展的基金会。我猜,我们早晚会听到更多关于Istio花落哪家基金会的新闻。


以下内容来自 Istio 官网信息:


我们很自豪地发布了 Istio 1.0! Istio 至今已经开发了近两年,1.0 版本对我们来说是一个重要的里程碑。我们所有的核心功能现在都可以用于生产。


这些发行说明描述了 Istio 1.0 与 Istio 0.8 之间的不同之处。 Istio 1.0 只有一些相对于 0.8 的新功能,因为此版本的大部分工作都用于修复错误和提高性能。


网络


  • 使用 Virtual Service 进行 SNI 路由。VirtualService 中新引入的 TLS 部分可用于根据 SNI 值路由 TLS 流量。名为 TLS/HTTPS 的服务端口可与虚拟服务 TLS 路由一起使用。没有附带虚拟服务的 TLS/HTTPS 端口将被视为不透明 TCP。

  • 流式 gRPC 恢复。Istio 0.8 导致长时间运行的流 gRPC 连接的周期性终止。这已在 1.0 中修复。

  • 旧版本(v1alpha1)的网络 API 被移除。 已删除对旧的 v1alpha1 流量管理模型的支持。

  • Istio Ingress 被弃用。Istio Ingress 已弃用。默认情况下,旧的 Istio ingress 已被弃用和禁用。我们鼓励用户使用 gateway。


策略和遥测


  • 属性更新。用于描述流量来源和目的地的一组属性已经完全改进,以便更加精确和全面。

  • 缓存策略检查。Mixer 现在具有用于策略检查的大型 2 级缓存,补充了 sidecar 代理中存在的 1 级缓存。这进一步减少了外部强制执行的策略检查的平均延迟。

  • 遥测缓冲。Mixer 现在在调度到适配器之前缓冲报告调用,这使适配器有机会以更大的块处理遥测数据,从而减少了 Mixer 及其适配器的总体计算开销。

  • 进程外适配器。Mixer 现在包括对进程外适配器的初始支持。这是与 Mixer 集成的推荐方法。关于如何构建进程外适配器的初始文档见进程外 个PRC 适配器开发指南和 gRPC 适配器开发解析。

  • 客户端遥测。除了服务器端遥测之外,现在可以从交互的客户端收集遥测。


适配器


  • SignalFX。这是新的 signalfx 适配器。

  • Stackdriver。此版本中的 stackdriver 适配器已得到充分增强,以添加新功能并提高性能。


安全


  • 授权。我们重新实现了授权功能。现在可以在不需要 Mixer 和 Mixer 适配器的情况下实现 RPC 级授权策略。

  • 改进的双向 TLS 认证控制。现在,在服务之间控制双向 TLS 身份验证变得更加容易。我们提供 “PERMISSIVE” 模式,以便您可以逐步为您的服务启用双向 TLS。我们删除了服务注解,并采用了一种独特的方法来启用双向 TLS,以及客户端目标规则。

  • JWT 认证。我们现在支持可以使用身份验证策略配置的 JWT身份验证。


相关阅读:



以上是关于Istio 迎来版本 1.0:一种开源的 Service Mesh的主要内容,如果未能解决你的问题,请参考以下文章

基于Istio的Aspen Mesh发布1.0版本

Istio——企业级微服务解决方案

Istio 1.0版本最全解读:性能全面提升,主流厂商全面拥抱

Istio 1.0将于北京时间7月31日下午3点正式发布!

Istio 1.0 部署

深度剖析 | Istio v1.1 正式发布