玩转Istio1.7.1服务网格之————为何使用lstio?最新的1.7.1都有哪些架构的变化?

什么是lstio?

今天聊聊lstio这个感受高大尚的服务网格到底为啥这么受欢迎?
顺便看看官方1.7.1的版本都解决了哪些bug以及功能稳定性上的提高前端

看官方如何定义lstio的,它是这么说的:它是一个彻底开源的服务网格,做为透明的一层接入到现有的分布式应用中。它也是一个平台,能够与任何日志、遥测和策略系统进行集成。lstio多样化的特性让你可以成功且高效的运行微服务架构,并提供保护、链接和监控微服务的统一方法。数据库

这个定义看起来比较长,咱们能够抽取其中比较重要的,好比后端

一、它依然是一个服务网格产品
二、它就是拥有服务网格的基本特性,也就是对应用层是透明的
三、它是为微服务架构来服务的
四、它的核心功能,能够链接、控制、保护、观测微服务安全

它们为何要用lstio来命名呢,我找到答案,这个词它并非一个英语单词,而是它是源于希腊语,它的意思是扬帆起航,能够看出它的标志是一个帆,那么由此你可能会联想起另一个很著名的产品kubernetes,这个词其实也起源于希腊语,它的意思跟它的logo是同样的,就是舵手的意思,google为何用lstio来给这个产品命名,实际上是很是有深意的,它的意思你不只有kubernetes这个舵,还有有lsitio的帆,由它们一块儿驾驶着你的云原生应用,扬帆起航,驶向彼岸,说的比较方言了。。。网络

另外lstio还有一个很是重要的特性,它被称做是第二代的Service Mesh,在原有的数据平面的基础上,增长了控制平面,它为现代的Service Mesh的产品定义了一个新的形态架构

lstio为何一推出就变得大红大紫?

17年的时候你可能不知道lstio是什么,如今能够说是头号网红了,红的缘由也可想而知,
咱们能够看它的版本历史周期
一、它的发布时间(20170501)发布0.1版本oracle

它是在17年的5月份发布了0.1版本,那么第一个service mesh产品叫Linkerd,大家也许早就据说过,它是17年4月份发布的,那么lstio在紧接着Linkerd发布以后,马上就发布了0.1版本,你想它的意图很明显,就是但愿可以尽快的阻击Linked稳步的发展,但愿让你们都知道有lstio这个产品的产生app

二、三巨头光环加身
另外没错人家还有三个巨头加深,能够说是两个巨头分别是,lyft这家公司明显是抱大腿的
google、IBM、lyft
玩转Istio1.7.1服务网格之————为何使用lstio?最新的1.7.1都有哪些架构的变化?运维

那么这三家公司为istio做为背书,不只他们的研发资源,研发投入以及社区影响力。都是linkerd这样的初创公司没法比拟的,所以一经推出就拥有了大量的粉丝,有这样的光环可想而知分布式

三、属于第二代的service mesh产品
毋庸置疑第二代要比第一代有碾压优点
四、envoy的加入让istio如虎添翼

原本envoy和linkerd它都是一个基于数据平面的产品,没有控制平面
istio自己也没有开发本身的数据平面,因此它直接联合了lyft公司,直接使用envoy做为本身默认的数据平面,envoy自己就经历了一年多的开发,很是的稳定性能也很是的可靠,它对linkerd仍是有比较大的优点的,envoy的加入直接让istio拥有了一个能够和linkerd抗衡的数据平面,省去了本身的开发的麻烦,对于lyft公司其实也有一个很大的好处,能够抱着IBM和google着两条大粗腿,为本身的产品保驾护航,反过来这两家公司也能够坐享其成,直接可使用envoy做为本身的数据平面,能够说是一个共赢的策略

五、istio的自己的功能也很是强大
能够在它的发布列表中看到使人眼花缭乱的这样的功能点,同时istio也受到了一些厂商的支持,包括IBM和google自家的云平台的支持,以及像redhat、还有oracle这样的公司主动站出来支持,因而可知受到了很是多的追捧,以上都是它的一些优势,有人认为它们是过分营销,linkerd的创始人也就是buoyant公司的CEO williamMorgan,曾经说过这样的话,目前来讲service mesh有一些处于不幸的状态,有一些产品过分的营销,致使市场超过了技术自己,那咱们能够认为williamMorgan这些话是针对istio来讲的,毕竟是它最重要的竞争对手,所以它说这句话也无可后非,那么至因而不是过分营销的状况产生。无论怎么样,istio已经站稳了C位,对于它本身来讲是一个件好事。

为何使用Istio?

https://istio.io/

学习lstio最好的就是官方,看看istio是如何营销本身的
首先它说有两大优点
一、能够轻松的构建服务网格
咱们其实不要觉得service mesh是一个很是高深离你很远的技术,你去构建一个mesh是很是容易的。
二、它对应用代码是透明的,不须要去修改本身的应用代码
其实它说的这个两个优点都是service mesh自己的优点
其余的产品也能作到这几点
固然它提供的功能仍是很是强大的

而lstio的核心功能就是service mesh的功能,主要有如下四个方面
玩转Istio1.7.1服务网格之————为何使用lstio?最新的1.7.1都有哪些架构的变化?

1、流量控制
一、第一点路由咱们常常听到的灰度发布,像蓝绿发布、AB测试这些均可以把它概括到路由这一点
二、第二点就是流量的转移
三、第三点是为网络增长弹性的能力,好比说超时、重试熔断这样的机制
四、最后它还提供了一些调试网格的一些特性,好比说故障注入,还有流量镜像的功能

2、安全
一、lstio对认证受权两方面,提供了一些安全机制

3、可观察性
一、在这一点lstio是安装比较经典的可观察性三方面提供了功能,分别是指标、日志、追踪

4、策略
像限流黑白名单这样的功能,在1.5的版本里把这个功能去掉了,由于是废弃了一个负责功能的模块叫Mixer,它把一些功能都转移到envoy功能里面去了,后续策略相关功能也会逐步发布出来

说说目前的版本发布,关注2020年的lstio的版本变化的话,你就知道lstio今年但是变化的真快
lstio从17年5月进行发布开始,能够归列为四个重要的版本以及三个阶段

首先看看都有哪四个版本
玩转Istio1.7.1服务网格之————为何使用lstio?最新的1.7.1都有哪些架构的变化?
第一个版本就是17年5月的0.1版本,像世人宣告lstio产生,第二个版本是18年的7月份发布了1.0版本,号称是能够应用于生产环境,第三个版本是1.1版本,它跟前一个版本间隔了有半年多的时间,缘由是进行对底层架构的一个重构,这个版本宣称是企业级可用,最后一个版本是前不久2020年8月21号发布的1.7.1版本

而前不久2020年5月21日,情人节那天在1.6版本发布,版本更新了很多功能

好比

一、版本引入了lstiod

这个新模块,经过组合多个服务的功能来减小Istio安装中的组件数量。而在Istio 1.6中,已完成此过渡,并将功能彻底移至Istiod。这使可以删除Citadel,Sideca的injector和Galley来实现单独部署。

二、生命周期的优化

而在命令行工具istioctl可提供更好的诊断信息,更简单的安装命令,甚至提供彩色状态!

升级Istio的功能也获得了改善。首先,如今支持Istio控制平面自己的金丝雀。这意味着能够在现有版本旁边安装新版本的控制平面,并有选择地让代理使用新版本。固然官方也给出了示例博客
好比使用Canary Control Plane部署安全地去升级Istio
https://istio.io/latest/blog/2020/multiple-control-planes/

还有一条istioctl upgrade命令能够在集群中执行就地升级(仍然能够控制本身更新代理)

三、可观察性分布式应用程序

许多公司仅采用Istio是为了更好地观察分布式应用程序,所以在这块也进行了投资。好比会看到更多的可配置性,更好地控制跟踪采样率的能力,并更新Grafana仪表盘

四、WorkloadEntry工做负载

https://istio.io/latest/docs/reference/config/networking/workload-entry/
固然这里官方也给出了示例
对于那些将非Kubernetes工做负载添加到网格的人员(例如,部署在VM上的工做负载),新资源比以往任什么时候候都更容易实现。建立了API,目的是为非Kubernetes工做负载提供表示,它将VM或裸机工做负载提高到与Kubernetes相同的级别,而不只仅是具备IP地址的端点。如今甚至能够定义由Pods和VM支持的服务。
为何这样有用?好比如今能够将同一服务的部署(VM和Pods)混合在一块儿使用,从而提供了一种绝佳的方式,能够将VM工做负载迁移到Kubernetes集群,而不会中断往返于该集群的流量。

固然小版本都是一些bug的修复,这里你们能够去官网查看

1.7.1版本中的变化

固然此次更新的发行版仍是继续按照路线图中概述的方向导航,从而提升了可用性,安全性,可靠性,尤为是在VM(非Kubernetes)用例上进行了改进,这样注意的是,在虚拟机的层面上增长了改进

如下是此版本的一些要点

安全加强

一、确保目标规则证书能够经过文件挂载,也能够经过SDS(尤为是自动循环)得到安全秘密分发,这是重要的安全性的一个最佳实践

二、上面的项目适用于网关网格。这是如今能够为 那些TLS出口网关/ MTLS起源于提供客户端证书的密钥

三、还改进了信任域验证来验证TCP流量。之前只有HTTP流量通过验证。目前新版本资源中如今也支持“信任域验证trustDomainAliases ” “config"

四、如使用ECC加密还有助于在提供高安全性的同时提升效率。增长了使用ECC的证书颁发机构进行通讯的功能。

五、最佳实践安全性的重要组成部分是不要以超出其所需权限的权限运行进程,例如,防止混淆的副***。所以,还将Gateway部署修改成默认状况下以非root用户身份运行。

六、若是使用的是基于源主体的安全策略,则Istio Gateway和mTLS可能存在一个错误,这个须要知道

易于使用的改进

一、Istio这样的系统,易于很大一部分人去使用,尤为是在帮助发现潜在问题的能力方面。增长了很是有用的istioctl分析工具的功能:

二、警告可能不安全的DestinationRule配置
三、警告已弃用的Mixer资源使用状况
四、对于istioctl的频繁用户,自定义默认配置可能有用,而不是每次都键入它。增长了将我的默认值放入主目录的功能。

五、易于阅读的文本比数字更容易-这就是咱们拥有DNS的缘由!所以还为端口号添加了它。如今可使用如http的助记符(而不是80)来指定端口类型。

六、另外还添加了 “ istioctl x卸载”以使其变得很是容易。

生产可操做性的改善

鉴于Istio在生产系统中的普遍使用,另外对可用性进行了一些改进:

一、能够将应用程序启动延迟到Sidecar启动。这提升了部署的可靠性,在该部署中,应用程序须要在启动时当即经过其代理访问资源。

二、有时,陈旧的端点可能会使Pilot变得不健康,另外对这块也进行了改善于修复

三、Istio操做是安装Istio一个伟大的方式,由于它能够配置数量。金丝雀控制面的部署也很重要。它们容许对Istio进行超安全的升级。不幸的是,直到如今都不能一块儿使用它们。

四、Istio-agent公开了指标,所以能够观察它的运行状况。

五、对Prometheus指标管道进行了多项改进,以一种更轻松,更有效的方式在那里获取了更多数据。

虚拟机支持,增长了安全性

一、自Istio成立以来,社区一直致力于将VM上的工做负载合并到服务网格中的支持。尽管如今有多个版本的用户都在使用它,但在Istio 1.7中,倾向于添加一些改进。请注意,这仍然是Alpha功能。

二、Istio最经常使用的功能之一是其安全功能集。其核心是以短时间证书的形式为每一个工做负载分配一个强大的身份。在此版本中,确保网格中VM上运行的工做负载具备安全的自举过程以及自动证书轮换。
例如,拥有一个Kubernetes集群,该集群托管无状态Web服务(前端),该服务提供来自Kubernetes外部VM中运行的有状态数据库(后端)的数据。你仍然但愿使用mTLS加密前端对这些后端的访问。经过此更改,能够轻松地作到这一点。此外,这是以“零信任”方式完成的,其中一个前端或后端的妥协不容许模仿或损害其余前端或后端,由于自举和证书轮换遵循着最佳实践。

三、还扩展了istioctl以便可以验证基于VM的工做负载的代理状态,之前验证仅适用于基于Kubernetes的工做负载。

四、最后,添加了正式的RPM软件包以及已经存在的Debian软件包。这应该使在基于Red Hat的映像上进行安装很是容易。

其余修复

一、删除了一些无效的控制平面指标,并 默认状况下中止安装遥测插件。

二、解决了SNI路由的问题。

Istio如今能够与无头服务更好地协做,由于它将再也不将mTLS流量发送到没有sidecar的无头服务上面。

lstio会成为下一个kubernetes的吗?

那么咱们想想目前lstio已经这几年的变化,它会不会成为下一个现象级的kubernetes产品,咱们能够来分析一下
玩转Istio1.7.1服务网格之————为何使用lstio?最新的1.7.1都有哪些架构的变化?

首先第一点来看看lstio产生了哪些意义?
一、lstio的出现实际上让你从新定义了微服务的开发方式,让你能够轻松的在你的微服务架构中注入service Mesh技术
二、它能够大幅下降微服务应用的开发门槛,让你只关注业务自己
不用考虑如何添加不少网络控制的相关功能或者类库
三、它用统一的运维和开发方式,来简化微服务的开发流程

那么Istio一经推出,其实是背负了这几家公司的使命,而对于IBM和google的这样的云厂商来讲,lstio是一个战略级产品,它的推出为这两家厂商的云平台,提供一个杀手级的特性

它能够延续google的云原生市场上一个战略布局,咱们能够在这张图能够看到在容器层面google已经有了kubernetes,那么在通信层面已经有了google grpc的协议,而微服务这个层面,google也就是打算使用lstio这样的一个产品来占领市场,整个这三方面组成了google的一个云原生的战略,另外lstio还受到了不少云厂商的支持,包括自家的G cloud,IBM的cloud,以及国内的现几大厂商,它们如今的产品也都是基于lstio二次开发的,另外它可能还会受到一些其余厂商的阻击,好比说亚马逊的AWS使用的本身的app Mesh这样的产品,好比微软本身的云平台Azure,它也有本身的service mesh产品,可能在将来云平台的生态闭环,可能会有不一样的service mesh产品并存,目前还不能直接看出lstio一家独大。

相关文章
相关标签/搜索