Istio架构
Istio 架构
Istio 架构组成:
控制平台(control plane)
:配置中心,动态的对 envoy 进行配置
数据平台(data plane)
:业务之间的通信平面
- 使用 enovy(istio-proxy) 代理所有的网络流量
Istio 架构演化
v1.0 版本
v1.1 版本
- 2019/3 v1.1 发布企业级可用(Enterprise ready),参考:https://istio.io/v1.1/docs/concepts/what-is-istio/,v1.1 ~ v1.4 架构基本相同
说明:
- 新增 Galley,解耦部分 Pilot 能力
- Mixer 添加 adapter,扩展 Mixer 的扩展能力,但 Mixer 负担重,存在性能瓶颈
- 架构复杂,排错难
v1.5+ 版本
- 2020/3 v1.5 架构重构(1.5+ 后的版本)
说明:
- istiod
- 单体应用 istiod 整合 Pilot、Citadel、Galley 和 Sidecar Injector,简化架构
- Pilot 控制平面核心组件
- 管理和配置部署在 Istio 服务网格中的 Envoy 代理
- 为 Envoy Sidecar 提供服务发现、智能路由的流量管理功能
- Citadel 认证和凭证管理等安全功能
- Galley
- 是 Pilot 适配底层平台的功能而独立的组件,是完成 Istio 的配置验证、摄取、处理和分发组件
- 从 kube-apiserver 加载配置,通过 Pilot 进行分发
- istiod 充当控制平面,将配置分发到所有 sidecar 代理和网关
- istiod 支持为网格应用实现职能化的负载均衡机制,且相关流量绕过 kube-proxy
- ingress-gateway
- engress-gateway
- Addons
- Kiali
- Prometheus
- Grafana
- Jaeger
- 新增 istioctl 和 VM Support
- 废弃了影响性能的 Mixer,遥测使用 Telemetry v2 代替,由 Envoy 自行完成
新框架性能
参考:https://istio.io/latest/docs/ops/deployment/performance-and-scalability/
性能会有一些损耗,但基本可接受。
流量示意图
说明:
- Gateway 网关:接收流量转发给 VirtualService
- VirtualService:实现如下功能:
- DestinationRule:目标定义、subsets