使用Prometheus进行监控是Istio提供的监控能力之一。Istio提供丰富的监控能力,为网格中的服务收集遥测数据。Mixer是负责提供策略控制和遥测收集的Istio组件。
Istio通过Mixer实现流量监控的基本流程如下图:每个pod内有一个service和proxy,Envoy容器实现proxy功能,对流入和流出pod的流量进行管理、认证和控制。Mixer则主要负责访问控制和遥测信息收集。当某个服务被请求时,首先会请求istio-policy服务,来判定是否具备访问资格,若具备资格则放行,反之则请求不会被下发到服务。这一切的访问信息,都会被记录在Envoy中,之后会上报给Mixer作为原始数据,并生成具体的监测指标。
Figure 1 mixer拓扑
Mixer配合一系列后端基础设施,为运维提供丰富而深入的控制和监测,并且不额外增加服务开发人员负担。后端提供用于构建服务的支持功能,访问控制系统,遥测捕获系统,配额执行系统,计费系统等。Mixer开放了Istio服务与不同的基础设施后端的交互能力,隔离用户程序和各个基础设施后端的实现细节。Istio通过丰富组件的边界交互,减少系统复杂性,消除服务代码中的策略逻辑并将控制权交给运维。
Mixer处理不同基础设施后端的是通过使用通用插件模型实现的。每个插件都被称为 Adapter,Mixer通过它们可对接到不同的基础设施后端,这些后端可提供日志、监控、配额、ACL检查等核心运维功能。这些功能灵活可控,你既可以定制新的基础设施后端,也可以完全禁用这些功能。