前导
由于 istio 自 1.5 版本以后架构上有了较大变化,控制面从多组件变成了单体的 istiod 组件,所以下文会先介绍 1.5 之前的架构,再介绍 1.5 之后的,是一个由繁到简的过程。
istio 1.5 之前架构
Istio 的架构分为控制平面和数据平面
-
数据平面:由一组智能代理(Envoy)以 sidecar 模式部署,协调和控制所有服务之间的网络通信。
-
控制平面:负责管理和配置代理路由流量,以及在运行时执行的政策。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZGTSBVw-1637308116914)(https://mmbiz.qpic.cn/mmbiz_jpg/YZibCWq4rxDicG0d4P48YIchbJcrvwoMiayRkp9cFcAoZlliaCTiaO0rwOoe7DHb21ibh4qM1oYMJ9zicDaw45qmIicT4g/640?wx_fmt=jpeg)]
可以看到控制面(control plane )组件众多,下图是 1.1 版本所包含的组件:
istio 工作原理
我们先按照