故障注入
丰富的指标
这种 sidecar 部署允许 Istio 提取大量关于流量行为的信号作为属性。Istio 可以使用这些属性来实施策略决策,并将其发送到监视系统以提供有关整个网格行为的信息。
sidecar 代理模型还允许您向现有的部署添加 Istio 功能,而不需要重新设计架构或重写代码。您可以在设计目标中读到更多关于为什么我们选择这种方法的信息。
由 Envoy 代理启用的一些 Istio 的功能和任务包括:
流量控制功能:通过丰富的 HTTP、gRPC、WebSocket 和 TCP 流量路由规则来执行细粒度的流量控制。
网络弹性特性:重试设置、故障转移、熔断器和故障注入。
安全性和身份验证特性:执行安全性策略以及通过配置 API 定义的访问控制和速率限制。
基于 WebAssembly 的可插拔扩展模型,允许通过自定义策略实施和生成网格流量的遥测。
控制平面
管理并配置代理来进行流量路由。
-
Pilot,负责将配置分发给 sidecar 组件
-
Citadel,负责安全
-
Mixer,负责遥测和策略,一种插件模型。但存在问题:
需要和数据平面进行两次通信,但其又是单独部署的进程外的组件,所以每次请求都要和进程外进行通信,降低整个请求的性能。插件模型虽然带来很好的扩展性,但也产生耦合:当需要添加新插件或修改已有插件,都要重新部署 mixer。所以下一版本就需要解耦
Istio 中的流量分为数据平面流量和控制平面流量。数据平面流量是指工作负载的业务逻辑发送和接收的消息。控制平面流量是指在 Istio 组件之间发送的配