一张图理解Envoy

简介: Istio Envoy

Envoy 是 Istio 数据面的核心组件,已Sidecar的模式同应用部署在一个Pod中。
下图展示了Envoy配置流程:


Envoy.png

  • Pilot-agent负责Envoy生命周期管理。它根据启动参数和K8S API Server中的配置信息生成Envoy的初始配置文件envoy-rev0.json,该文件告诉Envoy从xDS server中获取动态配置信息,并配置了xDS server的地址信息,即控制面的Pilot。
  • Pilot-agent使用envoy-rev0.json启动Envoy进程。
  • Envoy根据初始配置获得Pilot地址,采用xDS接口从Pilot获取到Listener,Cluster,Route等动态配置信息。
  • Envoy根据获取到的动态配置启动Listener,并根据Listener的配置,结合Route和Cluster对拦截到的流量进行处理。

Envoy通过xDS API进行动态配置。xDS是一类发现服务的总称,包含LDS、RDS、CDS、EDS及SDS。

  • LDS:Listener发现服务。Listener监听器控制Envoy启动端口监听(目前只支持TCP),并配置 L3或L4层过滤器,在网络连接到达后,由网络过滤器堆栈开始处理。
  • RDS:Route发现服务,用于Envoy HTTP连接管理器动态获取路由配置。路由配置包含HTTP头修改(增加、删除HTTP头键值)、Virtual Hosts(虚拟主机)及Virtual Hosts定义的各个路由条目。
  • CDS:Cluster发现服务,用于动态获取Cluster信息。Envoy Cluster管理器管理着所有的上游Cluster。Envoy从Listener(针对TCP协议)或Route(针对HTTP)中抽象出上游Cluster,作为流量转发目标。
  • EDS:Endpoint发现服务。对于每个Cluster,Envoy通过EDS API动态获取Endpoint。
  • SDS:Secret发现服务,用于在运行时动态获取TLS证书。
目录
相关文章
|
Kubernetes 测试技术 应用服务中间件
Istio简介及基于ACK安装Istio
了解服务网格开源产品Istio,使用阿里云ACK安装Istio过程
1441 2
|
负载均衡 Kubernetes 网络协议
Istio:xDS协议解析
Istio:xDS协议解析
Istio:xDS协议解析
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
394 1
|
Prometheus 网络协议 Cloud Native
Istio中的流量配置
Istio中的流量配置
263 1
|
缓存 应用服务中间件 nginx
运维系列.Nginx中使用HTTP压缩功能(二)
运维系列.Nginx中使用HTTP压缩功能(二)
233 0
|
Kubernetes API 数据中心
在K8S中,pause容器作用是什么?
在K8S中,pause容器作用是什么?
|
JSON Java Apache
SpringCloud - Feign 调用服务及传递参数踩坑记录(上)
SpringCloud - Feign 调用服务及传递参数踩坑记录(上)
3227 0
|
存储 安全 Linux
Envoy源码分析之ThreadLocal机制
# ThreadLocal机制 ​ Envoy中的`ThreadLocal`机制其实就是我们经常说的线程本地存储简称TLS(Thread Local Storage),顾名思义通过TLS定义的变量会在每一个线程专有的存储区域存储一份,访问TLS的时候,其实访问的是当前线程占有存储区域中的副本,因此可以使得线程可以无锁的并发访问同一个变量。Linux上一般有三种方式来定义一个TLS变量。
2113 0
|
存储 NoSQL 人机交互
【Docker系列】从头学起 Docker——docker --help命令详解
【Docker系列】从头学起 Docker——docker --help命令详解
【Docker系列】从头学起 Docker——docker --help命令详解