Istio 架构简单说明

  • Istio 1.5之前 整体架构
  • 控制平面
  • 版本说明
  • 数据平面


Istio 1.5之前 整体架构

Istio服务网格之前说过分为控制平面数据平面两部分

  • 控制平面Pilot负责管理配置代理路由流量,并配置Mixer实施策略收集遥测数据,其中包括Pilot,Mixer,Citadel,Galley
  • 数据平面由一组Sidecar方式部署的智能代理(Envoy)组成,这些代理可以调节和控制微服务及Mixer之间所有的网络通信

由于看的是纸质书,这个图我只能手画了。

istio架构及通信方式 istio架构图_数据

控制平面

  • Pilot组件 用于管理流量,可以通知微服务之间的流量流动和API调用,为Envoy代理提供服务发现,为智能路由熔断,超时,重试等等提供流量管理功能
  • Mixer组件 提供策略控制遥测收集功能,负责在服务网格上执行访问控制使用策略,并从Envoy代理和其他服务收集遥测数据。代理提取请求及属性,发送到Mixer进行评估。它为每个实例提供高可用性,本地缓存和缓冲区可以减少延迟时间,还有助于后端故障,即使后端没有响应。
  • Citadel 安全功能,提供强大的身份验证、策略,透明的TLS加密以及用于保护服务和数据的身份验证、授权和审计(AAA)工具,Envoy可以终止或向网格中的服务发起TLS流量。
  • Galley 用于验证用户编写的Istio API配置。

版本说明

说了这么多,为什么我要挑Istio最为复杂和被诟病的时期的版本(1.5之前)来说组件呢,这么多组件在被用起来很复杂,但是可以帮我们理解更深,因为我们看到了很细的组件划分。

1.5后主要包括重建了控制平面,将原有的多个组件整合为一个单体结构istiod ,同时废弃了被诟病已久的 Mixer 组件。如果我只画一个Istiod,初学者理解起来就容易搞的半懂不懂。

我从网上找了一张1.5之后的架构图:

istio架构及通信方式 istio架构图_身份验证_02

数据平面

之前说了Istio中使用Envoy作为服务代理。关于Envoy静态资源动态资源自己看看文档吧,也不难,今天懒得画图了。