全方位解读| Istio v1.1正式发布

  

北京时间2019年3月20日,Istio v1.1版本发布。在Istio继续1.0版本之后,先后发布了6个补丁来扩充和完善相关功能。经过8个月的努力,不计其数的测试迭代,1.1版本终于和大家见的面,引起广泛讨论。

  

在对Istio 1.1进行全方位解读之前,我们先来回顾一下Istio的设计初衷.Istio设计之初期望于能够简化应用的开发及部署方式,把应用上线所需的外围支撑系统与业务应用相分离,从而减轻开发团队的压力,提升开发效率,同时Istio基于网络代理的实现方案,为业务运行时的流量控制,安全策略以及运行态实时监测提供了强大的支持功能。而这些功能一定程度上等价于给业务系统减负,使得服务能够更快更方便地构建,迁移和发布。

  

1.1 Istio官宣新主题在于企业级(企业应用水准)。从官方文档给出的发行说明分析,1.1版本基于Istio之前版本被诟病的性能问题做了重点优化,同时针对隔离性、安全性,多集群和可扩展性做了进一步加强,以满足用户对于多场景的支持。

  

Istio最新架构如图所示:

  

全方位解读| Istio v1.1正式发布

  

性能优化

  

1.1 Istio带来的最显著的性能变化在于提升了数据平面和控制平面的执行效率。根据官方测试数据显示(在本地环境有待进一步验证),新发布的istio-proxy(双轮马车)仅需要半个个vCPU的资源就可以支撑1000 rp,同时单个飞行员实例仅仅需要1.5个个vCPU与2 GB RAM就可以支持1000个应用(2000个pod) .Istio-proxy在半数情况下仅增加5 ms延迟,在99%的情况下增加10 ms延迟。从而初步解决飞行员资源过度消耗以及istio-proxy延迟大的劣势。

  

隔离性

  

1.1 Istio提供新类型的双轮马车资源,允许用户基于名称空间增加的双轮马车对象对边界强制控制,以达到减轻代理计算负担的效果,同时增加出口出于字段,用来指定网络资源在名称空间中的生效范围。

  

安全性

  

1.1 Istio在安全性方面同样有了很大的提升,主要包括更新serviceEntity资源,使得HTTPS的服务不在需要额外的VirtualService来开启SNI路由;在启动双向TLS的场景下,支持准备,活性健康检查策略,更新集群RBAC的权限配置,使用ClusterRbacConfig对象替代原来的RbacConfig,以扩展集群范围的RBAC的权限控制;集成库PKI,动态加载和替换外部证书,TCP服务授权,插件凭证保护以及SDS身份认证等方式。大范围增加了Isito的安全特性。

  

多集群

  

1.1 Istio改进流量控制和策略的默认配置,引入厨房新组件,用来验证YAML文件的规范性,合法性,以降低配置错误的几率。同时厨房可以在集群中发挥强大的作用,用来从多个kubernetes集群中收集服务发现信息。同时支持在无需扁平网络的前提下实现单一控制平面与多个同步控制平面。

  

部署安装

  

1.1 Istio修改舵图表,关闭Egressgateway,默认关闭机政策以及允许所有的出口流量,同时允许自定义CRD与Istio图表分离,提供数据延续性。

  

1.1 Istio还提供了其他方面的更新,例如链路跟踪优化,外部适配器等。

  

新版本具体更新文档地址:https://istio.io/docs/

  

新版发布本代码下载地址:https://github.com/istio/istio

  

全方位解读| Istio v1.1正式发布

全方位解读| Istio v1.1正式发布