ISTIO telemetry V2 介绍

简介: ### 背景 ISTIO 早期版本(1.4以前)的架构非常优雅, 模块之间解耦清晰,职责分明。 但现在看来有一定理想化,所有流量通过Mixer,通过Mixer 统一采集和上报所有的遥测数据和服务间访问鉴权,导致一旦规模上来,Mixer 非常容易成为性能瓶颈。 ![image.png](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/920

背景

ISTIO 早期版本(1.4以前)的架构非常优雅, 模块之间解耦清晰,职责分明。 但现在看来有一定理想化,所有流量通过Mixer,通过Mixer 统一采集和上报所有的遥测数据和服务间访问鉴权,导致一旦规模上来,Mixer 非常容易成为性能瓶颈。

image.png



Telemetry V2介绍 

在1.4中,ISTIO提出 Mixer-less telemetry 架构,将Mixer 从主流程抽离。 将遥测和服务鉴权能力下沉到每个服务的代理Proxy Envoy中。了解ISTIO 以前架构的同学应该都知道,Mixer 是一个热拔插组件,有极好的扩展性。 支持代码中注册编写Adapter并重新打包的方式更新遥测对接的配置,也支持配置 Out Of Process Adapter  这样的外部适配器,进行遥测的对接和动态配置。但提供灵活性同时,也成为了整个ISTIO 明显的性能瓶颈。

image.png


image.png

Istio 中Telemetry V2的实现

那么ISTIO 1.4 是如何实现 Mixerless 的呢?
在1.4中, 服务的遥测和访问鉴权从Mixer逐渐开始下沉到Envoy中, 从而经过我们应用的出入流量不必全部上报到Mixer,实现了Mixer 旁路。   服务遥测在Envoy中完成追踪服务之间的流量请求,并在Envoy所在Pod中监听相关端口,提供Prometheus采集指标。

image.png

那么在ISTIO 支持EnvoyFilter  这个CRD,它提供一种机制,可以帮助我们定制 Pilot 所生成并下发给Envoy 配置,在EnvoyFilter中我们能够定义生效的pod范围,注入的时机以及执行内容。 同样EnvoyFilter支持WebAssembly,  我们可以通过EnvoyFilter 配置WebAssembly的执行时机,实现Envoy 的流量管理策略的更新, 例如:  https://istio.io/blog/2020/deploy-wasm-declarative/ 。
目前在ISTIO 维护的Envoy proxy中, 支持部分内置的WebAssembly 扩展, 目前有4个内置WebAssembly扩展(access_log_policy,stackdriver, stats,metadata_exchange)代码: https://github.com/istio/proxy/tree/master/extensions 

  • 其中access_log_policy,stackdriver 是用于往Google StackDriver推送数据
  • metadata_exchange和stats 用于遥测。 

    • metadata_exchange 会做reqeust和response的上下游标记,记录请求
    • stats 采集请求相关监控指标,暴露Prometheus 可采集的接口。

image.png

阿里云服务网格

阿里云服务网格 目前已经通过Telemetry V2的方式支持Prometheus 监控遥测,您可以在控制台一键开启或者关闭遥测功能,并将监控数据采集到自建Prometheus 或者 阿里云ARMS 中。

阿里云服务网格动态配置遥测

image.png

查看请求数据的监控大盘

image.png

目录
相关文章
|
3月前
|
Kubernetes 负载均衡 应用服务中间件
kubernetes—Ingress详解
kubernetes—Ingress详解
71 0
|
3月前
|
Kubernetes 应用服务中间件 nginx
|
7月前
|
Kubernetes 安全 API
Istio安全架构(一)
Istio安全架构(一)
|
7月前
|
运维 监控 负载均衡
Istio 介绍
当下,微服务架构在构建和部署现代应用程序时变得越来越流行。然而,微服务架构的复杂性也随之增加,特别是在涉及到服务间通信、负载均衡、安全性和监控方面。在这个复杂的环境中,Istio成为了一个强大的工具,它可以帮助您管理和控制微服务应用程序的各个方面。本文将详细介绍Istio,并探讨其核心功能和优势。
|
11天前
|
Kubernetes 负载均衡 应用服务中间件
Kubernetes的Ingress
Kubernetes的Ingress
27 0
Kubernetes的Ingress
|
6月前
|
Kubernetes 应用服务中间件 调度
kubernetes Ingress、Ingress controller
kubernetes Ingress、Ingress controller
|
10月前
|
负载均衡 Kubernetes 监控
[Istio是什么?] 还不知道你就out了,40分钟快速理解(上)
[Istio是什么?] 还不知道你就out了,40分钟快速理解
114 0
|
10月前
|
负载均衡 Kubernetes 网络协议
[Istio是什么?] 还不知道你就out了,40分钟快速理解(下)
[Istio是什么?] 还不知道你就out了,40分钟快速理解(下)
75 0
|
负载均衡 监控 测试技术
Istio 介绍| 学习笔记
快速学习 Istio 介绍
200 0
Istio 介绍| 学习笔记
|
缓存 Kubernetes 网络协议
Kubernetes 服务接入 Istio
Kubernetes 服务接入 Istio
312 1