#istio #mesh
- https://istio.io/latest/docs/ops/deployment/
# Architecture
- 一个 Istio service mesh 在逻辑上可以拆分为 data plane 和 control plane。
- **data plane**:由 intelligent proxies(部署为 sidecar 的 Envoy)组成。这些 proxies 劫持和控制微服务间的所有网络流量,也收集和报告 mesh 流量的 telemetry。
- **control plane**:管理和配置 proxies 去路由流量。
- 
## Components
### Envoy
- Istio 使用了 Envoy proxy 的一个扩展版本。
- Envoy proxies 部署为服务的 sidecars,逻辑上通过 Envoy 的许多内置功能来增强特性,例如:
- 动态服务发现
- 负载均衡
- TLS termination
- HTTP/2 和 gRPC 代理
- 熔断、健康检查、错误注入
- 使用基于百分比的流量分割进行分阶段发布
- 丰富的 metrics
- Sidecar 代理模型还允许你将 **Istio 功能**添加到现有部署中,而**无需**重新构建或重写代码。
- Envoy proxies 启用的一些 Istio 特性和 tasks 包括:
- **流量控制特性**:细粒度的流量控制、丰富的路由规则,适用于 HTTP,gRPC,WebSocket 和 TCP 流量。
- **网络容错特性**:重试、故障恢复、熔断和错误注入。
- **安全和认证特性**
- **Wasm 插件扩展**
> [!summary] Mesh 增强
> - Envoy 自身的能力
> - Istio 功能
### Istiod
- Istiod 提供了服务发现、配置和证书管理。
- Istod 将控制流量的 high level routing rules **转换**为 Envoy 特定的配置,并且在运行时将配置**传播**给 sidecars。
- Pilot 抽象了平台特定的服务发现机制,将它们合成为标准格式(任何符合 [Envoy API](https://www.envoyproxy.io/docs/envoy/latest/api/api) 的 Sidecar 都可以使用)。
- 可以使用 Istio 的 [[istio concepts doc#^ebc917|Traffic Management API]] 来指示 Istio 优化 Envoy 配置,以便对服务网格中的流量进行更细粒度的控制。
-------