软件开发架构师

Istio 1.1 版本发布,性能和可用性提升

架构 76 2019-03-26 23:14

3 月 20 日,Istio 1.1 版本发布,距离 Istio 1.0 版本发布已经过去了 7 个月。Istio 1.0 版本发布的时候,一些主要新功能包括:

  • 将多个 Kubernetes 集群添加到单个网格中,并启用跨集群通信和一致的策略实施。
  • 增量上线双向 TLS,无需更新服务的所有客户端。这是一项关键功能,可以解除在现有生产上部署采用 Istio 的障碍。
  • Mixer 支持开发进程外适配器。

当前发布的 1.1 版本投入了很多精力在数据平面和控制平面的效率上。因为 Istio 在投入生产中时,使用更大的集群以更高的容量运行更多服务,可能会遇到了一些扩展和性能问题。Sidecar 占用了太多资源增加了太多的延迟。控制平面(尤其是 Pilot)过度耗费资源。

在 1.1 版本 的性能测试中,sidecar 处理 1000 rps 通常需要 0.5 个 vCPU。单个 Pilot 实例能够处理 1000 个服务(以及 2000 个 pod),需要消耗 1.5 个 vCPU 和 2GB 内存。Sidecar 在第 50 百分位增加 5 毫秒,在第 99 百分位增加 10 毫秒(执行策略将增加延迟)。

新版本优化了 namespace 隔离工作。可以很方便的使用 Kubernetes namespace 来强制控制边界,确保各个团队不会相互干扰。

同时 1.1 版本还改进了多集群功能和可用性。在听取了社区的意见之后,改进了流量控制和策略的默认设置。新版本引入了 Galley 组件,可验证 YAML 配置,减少了配置错误的可能性。Galley 还用在多集群设置中——从每个 Kubernetes 集群中收集服务发现信息。同时 1.1 版本还支持其他多集群拓扑,包括单控制平面和多个同步控制平面,而无需扁平网络支持。

更多信息,请参考发行说明

文章评论