暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

什么是 Istio?

Jerry分享汇 2021-04-12
755

    官方对 Istio 的介绍浓缩成了一句话:

An open platform to connect, secure, control and observe services.

翻译过来,就是”连接、安全加固、控制和观察服务的开放平台“。

    开放平台就是指它本身是开源的,服务对应的是微服务,也可以粗略地理解为单个应用。

    

中间的四个动词就是 Istio 的主要功能,这里再阐释一下:

  • 连接(Connect):智能控制服务之间的调用流量,能够实现灰度升级、AB 测试和红黑部署等功能。

  • 安全加固(Secure):自动为服务之间的调用提供认证、授权和加密。

  • 控制(Control):用户定义的 policy,保证资源在消费者中公平分配。

  • 观察(Observe):查看服务运行期间的各种数据,比如日志、监控和 tracing,了解服务的运行情况。

NOTE:其实 Istio 的源头是微服务,但这又是一个比较大的话题,目前可以参考网络上各种文章。如果有机会,我们再来聊聊微服务。


 Istio 官方给出的架构图:

    可以看到,Istio 就是我们上述提到的 Service Mesh 架构的一种实现,服务之间的通信(比如这里的 Service A 访问 Service B)会通过代理(默认是 Envoy)来进行。而且中间的网络协议支持 HTTP/1.1,HTTP/2,gRPC 或者 TCP,可以说覆盖了主流的通信协议。

    控制面板做了进一步的细分,分成了 Pilot、Mixer 和 Citadel,它们的各自功能如下:

  • Pilot:为 Envoy 提供了服务发现,流量管理和智能路由(AB 测试、金丝雀发布等),以及错误处理(超时、重试、熔断)功能。 用户通过 Pilot 的 API 管理网络相关的资源对象,Pilot 会根据用户的配置和服务的信息把网络流量管理变成 Envoy 能识别的格式分发到各个 Sidecar 代理中。

  • Mixer:为整个集群执行访问控制(哪些用户可以访问哪些服务)和 Policy 管理(Rate Limit,Quota 等),并且收集代理观察到的服务之间的流量统计数据。

  • Citadel:为服务之间提供认证和证书管理,可以让服务自动升级成 TLS 协议。

    代理会和控制中心通信,一方面可以获取需要的服务之间的信息,另一方面也可以汇报服务调用的 Metrics 数据。

     性能评估,官方给出了对最新版本V1.1.4的性能测试结果。在由1000个服务和2000个Sidecar组成,每秒产生70000个网格范围内的请求的网格中,得到以下结果:

  • Envoy在每秒处理 1000 请求的情况下,使用 0.6 个 vCPU 以及 50 MB 的内存。

  • istio-telemetry在每秒1000个网格范围内的请求的情况下,消耗了0.6个vCPU。

  • Pilot使用了 1 个 vCPU 以及 1.5 GB 的内存。

  • Envoy在第 90 个百分位上增加了 8 毫秒的延迟。

文章转载自Jerry分享汇,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论