Istio 架构简单说明
- Istio 1.5之前 整体架构
- 控制平面
- 版本说明
- 数据平面
Istio 1.5之前 整体架构
Istio服务网格
之前说过分为控制平面
和数据平面
两部分
控制平面Pilot
负责管理
和配置代理
来路由流量
,并配置Mixer
以实施策略
和收集遥测数据
,其中包括Pilot
,Mixer
,Citadel
,Galley
。- 数据平面由一组
Sidecar方式
部署的智能代理(Envoy)
组成,这些代理可以调节和控制微服务及Mixer
之间所有的网络通信
。
由于看的是纸质书,这个图我只能手画了。
控制平面
-
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
中使用Envoy
作为服务代理
。关于Envoy
的静态资源
和动态资源
自己看看文档吧,也不难,今天懒得画图了。