#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 去路由流量。 - ![](https://istio.io/latest/docs/ops/deployment/architecture/arch.svg) ## 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 配置,以便对服务网格中的流量进行更细粒度的控制。 -------