EnvoyFilter简介

EnvoyFilter 提供了一种机制来定制 Istio Pilot 生成的 Envoy 配置。使用 EnvoyFilter 修改某些字段的值,添加特定的过滤器,甚至添加全新的侦听器、集群等等。

这个功能必须谨慎使用,因为不正确的配置可能会破坏整个网格的稳定性。与其他 Istio 网络对象不同,EnvoyFilter 是叠加应用的。对于特定命名空间中的特定工作负载,可以存在任意数量的 EnvoyFilter。

这些 EnvoyFilter 被应用的顺序是:首先是配置在根命名空间中的所有 EnvoyFilter,其次是配置在工作负载命名空间中的所有匹配的 EnvoyFilter。

EnvoyFilter 的某些方面和 Istio 网络子系统的内部实现以及 Envoy 的 xDS API 有很深的联系。虽然 EnvoyFilter 本身将保持向后兼容性,但是在 Istio 版本升级过程中,通过该机制提供的任何 Envoy 配置都应该被仔细检查,以确保废弃的字段被适当地删除和替换。

当多个 EnvoyFilter 被绑定到给定命名空间中的相同工作负载时,将按照创建时间的顺序依次应用。如果有多个 EnvoyFilter 配置相互冲突,那么将无法确定哪个配置被应用。

要将 EnvoyFilter 资源应用于系统中的所有工作负载(sidecar 和 gateway)上,请在 config 根命名空间中定义该资源,不要使用 workloadSelector。

要将 EnvoyFilter 应用到系统中的所有工作负载( sidecar 和网关)的时候,建议在配置根命名空间中定义,而不要使用 workloadSelector 。

EnvoyFilter配置

属性 数据类型 说明 是否必填
workloadSelector WorkloadSelector 用于选择应用此补丁的pod或虚拟机
configPatches EnvoyConfigObjectPatch[] 具有匹配条件的补丁
priority int32 定义了补丁集在上下文中应用顺序的优先级

其中,如果 workloadSelector 没有被配置,此补丁将应用于相同名称空间中所有工作负载的实例; priority 的默认值为0,取值范围是[min-int32, max-int32], priority 为负的补丁将在默认priority 之前处理,priority 为正的补丁将在默认priority 之后处理。

EnvoyConfigObjectPatch配置

属性 数据类型 说明 是否必填
applyTo ApplyTo 指定在Envoy配置中应用补丁的位置
match EnvoyConfigObjectMatch 用于匹配监听器、路由或集群
patch Patch 与操作一起应用的补丁。

其中,ApplyTo可以配置的值有:

名称 说明
LISTENER 将补丁应用于监听器。
FILTER_CHAIN 将补丁应用于过滤器链。
NETWORK_FILTER 应用补丁到网络过滤器链,修改现有的过滤器或添加一个新的过滤器。
HTTP_FILTER 将补丁应用于HTTP连接管理器中的HTTP过滤器链,以修改现有的过滤器或添加新的过滤器。
ROUTE_CONFIGURATION 将补丁应用于HTTP连接管理器内的Route配置。
VIRTUAL_HOST 将补丁应用于路由配置内部的虚拟主机。
HTTP_ROUTE 在路由配置中将补丁应用于匹配的虚拟主机内的路由对象。
CLUSTER 将补丁应用到集群。
EXTENSION_CONFIG 在ECDS输出中应用补丁或添加扩展配置。
BOOTSTRAP 将补丁应用于初始化配置。

更多配置详见如下思维导图:

思维导图

一张图快速了解 Istio 的 EnvoyFilter相关推荐

  1. 5000字、12字 连环炮、一张图快速解决线程池

    5000字.12字 连环炮.一张图快速搞定线程池 2021-04-19 15:41·java互联网架构 今天我给大家总结了线程池的12连环炮. 1.为什么要创建线程池? 2.创建线程池有哪些方式? 3 ...

  2. 一张图快速get浅层辛普森公式

    一张图快速get浅层辛普森公式

  3. Docker学习(1)——几张图快速了解Docker

    前言 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项: 这篇文章希望能够帮助读者简单了解D ...

  4. 六张图快速读懂『项目管理』49个过程组

    项目管理<PMBOK指南>将一个完整项目划分为49个过程,10个知识领域,5个过程组. 每个过程,都要完成预期的产品,成果或服务.这49个过程,每位PMP学员都应该烂熟于心. ■下面分享[ ...

  5. 5000字、12 连环炮、一张图快速搞定线程池

    写在前面 前面文章中,我们总结了JVM18连环炮.并发并最基础的12连环炮,建议先阅读: 连环炮继续走起,今天我给大家总结了线程池的12连环炮. 1.为什么要创建线程池? 2.创建线程池有哪些方式? ...

  6. 一张图快速了解五大架构风格

    架构风格 架构风格定义了用于描述系统的术语表和一组指导构建系统的规则. 架构风格反映了领域中众多系统所共有的结构和寓意特性,并指导如何将各个构件有效地组织成一个完整的系统. 数据流风格 批处理序列 大 ...

  7. 几张图帮你理解 docker 基本原理及快速入门

    http://hainiubl.com/topics/13 什么是docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Goog ...

  8. python 30分钟_一张图30分钟快速Python入门

    国外一个大牛使用一张图来讲述Python的基本概念,让你30分钟快速入门.通过该程序,可以了解快速Python语言基本的语法结构和使用方法,它的基本程序如下: 当然看不懂没关系这里还有中文版的 # - ...

  9. 一张图30分钟带你入门python-大数据时代来了!神级程序员一张图帮你梳理Python脉络,快速入门...

    python语言是我目前为止用的最爽的语言,因为它真的很优美.虽然c,c++,java也非常的强大和伟大,但是每一种语言伟大的背后都是有一定的时代背景. 在PC时代大量的嵌入式的设备,底层的代码,以及 ...

最新文章

  1. 采购订单建立增加客户数据增强示例
  2. LoadRunner界面分析(二)
  3. Linux进行设置环境变量
  4. Python中可变类型和不可变类型的数据?
  5. 智慧海洋建设TOP方案借鉴学习与整理
  6. 数据治理管理平台功能模块与特性
  7. fiddler自定义显示目标IP和时间
  8. 戴尔服务器安装群晖系统安装教程,实战群晖NAS小白安装教程与经验分享
  9. Java部署斗鱼直播,iOS斗鱼直播项目
  10. 计算机页面添加文字水印在哪,轻松学会给office2013 word文档添加图片/文字背景水印以及让水印铺满整个页面-网络教程与技术 -亦是美网络...
  11. Modem Device on High Definition Audio Bus
  12. Linux下的软硬链接介绍
  13. delphi中通快递(支持快递查询、快递下单)
  14. word2vec的pytorch实现
  15. java第九课——继承
  16. [linux] maven
  17. Python学习笔记——eofs.standard的使用
  18. Python与OpenCV(三)——基于光流法的运动目标检测程序分析
  19. 制作一个创意的生日快乐网页祝福网站送给心爱的她(HTML+CSS+JS)
  20. 世界五百强企业网站(一)

热门文章

  1. C# ASP.Net利用背景图片实现 Graphics绘制炫酷的特效文字
  2. 如何确保大模型追求“正确”的目标?丨AI安全与对齐圆桌回顾
  3. 全国新冠疫苗接种剂次超13亿,未来将如何构建好“免疫长城”
  4. Python爬虫:Selenium+ BeautifulSoup 爬取JS渲染的动态内容(雪球网新闻)
  5. 谭松波酒店评价情感分析代码以及数据集获取
  6. 视频怎么压缩大小?简单的压缩办法在这里
  7. 成功解决Keil MDK5中no browse information available in ‘xxx’的问题
  8. 【Pygame实战】好“球”推荐——“足”出精彩,追“球”健康,足不出户在家也能“踢足球”啦~
  9. 男生学汽修还是计算机,哪些专业适合男生学习
  10. kvm 虚拟化 virsh,virt-manager 删除虚拟机