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的主要内容,如果未能解决你的问题,请参考以下文章