北京时间2019年3月20日,Istio v1.1版本发布。在Istio继续1.0版本以后,前后发布了6个补丁来扩充和完善相关功能。通过8个月的努力,不可胜数的测试迭代,1.1版本终于和你们见面,引发普遍讨论。git
在对Istio 1.1进行全方位解读以前,咱们先来回顾一下Istio的设计初衷。Istio设计之初指望于可以简化应用的开发及部署方式,把应用上线所需的外围支撑系统与业务应用相分离,从而减轻开发团队的压力,提高开发效率。同时Istio基于网络代理的实现方案,为业务运行时的流量控制、安全策略以及运行态实时监测提供了强大的支持功能。而这些功能必定程度上等价于给业务系统减负,使得服务可以更快更方便地构建、迁移和发布。github
Istio 1.1官宣新主题在于enterprise-ready(企业应用水准)。从官方文档给出的Release Notes分析,1.1版本基于Istio 以前版本被诟病的性能问题作了重点优化,同时针对隔离性、安全性、多集群和可扩展性作了进一步增强,以知足用户对于多场景的支持。安全
Istio最新架构如图所示:性能优化
性能优化网络
Istio 1.1带来的最显著的性能变化在于提高了数据平面和控制平面的执行效率。根据官方测试数据显示(在本地环境有待进一步验证),新发布的istio-proxy(sidecar)仅须要半个vCPU的资源就能够支撑1000 RPS,同时单个Pilot实例仅仅须要1.5个vCPU与2 GB RAM就能够支持1000个应用(2000个pod)。Istio-proxy在半数状况下仅增长5ms延迟,在99%的状况下增长10ms延迟。从而初步解决Pilot资源过分消耗以及istio-proxy延迟大的劣势。架构
隔离性ide
Istio 1.1 提供新类型的sidecar资源,容许用户基于namespace增长sidecar对象对边界强制控制,以达到减轻proxy计算负担的效果。同时增长exportTo字段,用来指定网络资源在namespace中的生效范围。性能
安全性测试
Istio 1.1在安全性方面一样有了很大的提高,主要包括更新serviceEntity资源,使得HTTPS的服务不在须要额外的VirtualService来开启SNI路由;在启动双向TLS的场景下,支持Readiness,Liveness健康检查策略;更新集群RBAC的权限配置,使用ClusterRbacConfig对象替代原来的RbacConfig,以扩展集群范围的RBAC的权限控制;集成Vault PKI,动态加载和替换外部证书,TCP服务受权,插件凭证保护以及SDS身份认证等方式。大范围增长了Isito的安全特性。优化
多集群
Istio 1.1 改进流量控制和策略的默认配置,引入Galley新组件,用来验证YAML文件的规范性,合法性,以下降配置错误的概率。同时Galley能够在集群中发挥强大的做用,用来从多个kubernetes集群中收集服务发现信息。同时支持在无需扁平网络的前提下实现单一控制平面与多个同步控制平面。
部署安装
Istio 1.1修改Helm chart,关闭Egressgateway,默认关闭Mixer Policy以及容许全部的出口流量,同时容许自定义CRD与istio chart分离,提供数据延续性。
Istio 1.1还提供了其余方面的更新,例如链路跟踪优化,外部Adapter等。
新版本具体更新文档地址: https://istio.io/docs/
新版本Release代码下载地址:https://github.com/istio/istio