一、istio的架构
服务网格(istio是服务网格的一个产品)由两部分组成:数据平面、控制平面
架构图可参考:Istio架构浅析之从1.4到1.5 - 知乎
可以看到,
- 数据平面包括核心组件:Proxy(也称为:Sidecar代理。在istio中使用的是Envoy产品的扩展版);
- 控制平面(控制平面主要是管理和控制代理的路由策略)包括核心组件:Pilot引导、Citadel堡垒,以及Galley。【需注意:上图是istio1.6版本的,istio1.6版本之前的组件还包括:Mixer混合器】
二、istio的核心组件
1、Envoy
原理可参考:
Envoy其实是一个网络管理产品【官网:Envoy Proxy - Home】。
因为Envoy是一个网络管理产品,所以它工作在数据平面是可以提供一些网络功能的。只不过,Istio是在Envoy基础上做一些开发。
2、Pilot
Pliot主要是提供一些职能路由,比如:A/B测试、金丝雀发布一些相关配置的。主要是控制流量行为的规则。
架构图可参考:
3、Citadel
主要是用于管理服务到服务的身份认证、证书管理等。
架构图可参考:Istio架构详解 - 璩阳何月 - 博客园
4、Galley
用于配置、验证、注入、处理和分发组件的。作为sidecar代理的分发以及注入等相关管理的。
架构图可参考:Istio架构浅析之从1.4到1.5 - 知乎
5、Mixer
Mixer的主要功能是提供策略控制,并从Envoy代理收集遥测数据。每次网络通信时Envoy代理都会向Mixer发出预检要求,用来检测调用者的合法性。调用之后Envoy代理会发送遥测数据供Mixer收集。一般情况下Sidecar代理可以缓存这些数据,不需要频繁地调用Mixer。