Istio提供了一种灵活的模型来强制执行授权策略并收集网格中服务的遥测。
基础架构后端旨在提供用于构建服务的支持功能。它们包括诸如访问控制系统,遥测捕获系统,配额执行系统,计费系统等之类的东西。传统上,服务直接与这些后端系统集成,创建硬耦合和烘焙特定语义和使用选项。
Istio提供了统一的抽象,使得Istio可以与一组开放式的基础架构后端进行交互。这样做是为了向运营商提供丰富和深入的控制,同时不给服务开发者带来负担。Istio旨在改变层之间的界限,以降低系统复杂性,从服务代码中消除策略逻辑并控制运营商。
混音器是Istio组件,负责提供策略控制和遥测收集:
混频器拓扑
特使边车在每次请求之前逻辑上调用混音器以执行前置条件检查,并且在每次请求报告遥测之后。边车具有本地缓存,使得可以从缓存执行相对大百分比的前提条件检查。此外,边车缓冲传出遥测,使得它实际上只需要不经常调用混音器。
在较高的水平,Mixer提供:
-
后端抽象。混合器将Istio的其余部分与各个基础结构后端的实现细节隔离开来。
-
中介。混合器允许操作员对网格和基础设施后端之间的所有交互进行细粒度控制。
除了这些纯功能方面,Mixer还具有如下所述的优势。
政策执行和遥测收集完全由配置驱动。可以完全禁用这些功能,并避免在Istio部署中运行混音器组件。
适配器
混合器是一种高度模块化和可扩展的组件。其关键功能之一是抽象出不同策略和遥测后端系统的细节,允许其余的Istio与这些后端无关。
通过使用通用插件模型,可以实现混频器处理不同基础设施后端的灵活性。单个插件称为适配器,它们允许Mixer连接到提供核心功能的不同基础架构后端,例如日志记录,监控,配额,ACL检查等。在运行时使用的确切适配器集是通过配置确定的,可以轻松扩展到目标新的或自定义基础架构后端。
调音台及其适配器
可靠性和延迟
混音器是一种高度可用的组件,其设计有助于提高整体可用性并减少网格中服务的平均延迟。其设计的关键方面提供了以下好处:
-
无国籍。混音器是无状态的,因为它不管理它自己的任何持久存储。
-
硬化。混合器本身设计为高度可靠的组件。设计意图是为任何单个Mixer实例实现> 99.999%的正常运行时间。
-
缓存和缓冲。混频器设计用于累积大量瞬态短暂状态。
位于网格中每个服务实例旁边的边车代理必须在内存消耗方面节俭,这限制了可能的本地缓存和缓冲量。但是,混音器独立存在,可以使用相当大的缓存和输出缓冲区。因此,混音器可作为侧车的高度可扩展且高度可用的二级缓存。
混频器拓扑
由于Mixer的预期可用性远高于大多数基础设施后端(通常具有99.9%的可用性)。混音器的本地缓存和缓冲区不仅有助于减少延迟,还可以通过即使后端无响应也能继续运行来帮助掩盖基础架构后端故障。
最后,Mixer的缓存和缓冲有助于降低对后端调用的频率,有时可以减少发送到后端的数据量(通过本地聚合)。在某些情况下,这两者都可以降低运营费用。
https://istio.io/docs/concepts/policies-and-telemetry/overview/