一张图快速了解 Istio 的 EnvoyFilter
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 。
文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。
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 | 将补丁应用于初始化配置。 |
更多配置详见如下思维导图:
思维导图

微信公众号:万猫学社
微信扫描二维码
关注后回复「电子书」
获取12本Java必读技术书籍

一张图快速了解 Istio 的 EnvoyFilter的更多相关文章
- 一张图快速上手Xmind思维导图
使用软件:Xmind8 pro版(可在网上找破解版),应用广泛,功能强大
- 一张图让你快速学会UML(聚合、组合、依赖、继承、接口、类)
有朋友反映,一上来直接讲设计模式就算理解了,也不知道如何画出类图,那么我们就通过一张图,来图解如何应用UML正确表示类与类之间的关系. 这张图完整讲述了鸟类的生存. 首先是类:在UML中,我们用分成三 ...
- 几张图帮你理解 docker 基本原理及快速入门
写的非常好的一篇文章,不知道为什么被删除了. 利用Google快照,做个存档. 快照地址:地址 作者地址:青牛 什么是docker Docker 是一个开源项目,诞生于 2013 年初,最初是 do ...
- 程序员有什么办法能快速梳理java知识点?有这八张图就够了
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符串不变性 下面这张图展示了这段代码做 ...
- 一张图告诉你为什么 Gmail 是最好的邮箱,以及大量私货
今天早上,我的同事详细介绍了 Gmail 相比其他邮箱的优势,比如强大的垃圾邮件过滤.简单的使用界面.强大的功能设置等等.但是对我来说,这些并不是我使用 Gmail 的最重要原因. 我第一个正式的邮箱 ...
- 【装逼利器效率软件】一张图问你想不想用Launchy
简述:Launchy博客园很多文章,长篇大论文字太多. 一张图问你想不想用? 长话多说: 一.设置Launchy扫描目录,安装后会默认,个人推荐自定义目录比较好 二.自行建立快捷方式别名文件夹,存放各 ...
- 从一张图开始,谈一谈.NET Core和前后端技术的演进之路
从一张图开始,谈一谈.NET Core和前后端技术的演进之路 邹溪源,李文强,来自长沙.NET技术社区 一张图 2019年3月10日,在长沙.NET 技术社区组织的技术沙龙<.NET Core和 ...
- 【转】一张图解析FastAdmin中的表格列表的功能
一张图解析FastAdmin中的表格列表的功能 功能描述请根据图片上的数字索引查看对应功能说明. 1.时间筛选器如果想在搜索栏使用时间区间进行搜索,则可以在JS中修改修改字段属性,如 {field: ...
- 产品经理-需求分析-用户故事-敏捷开发 详解 一张图帮你了解Scrum敏捷流程
产品经理-需求分析-用户故事-敏捷开发 详解 用户故事是从用户的角度来描述用户渴望得到的功能.一个好的用户故事包括三个要素:1. 角色:谁要使用这个功能.2. 活动:需要完成什么样的功能.3. 商业价 ...
- 一张图学dockerfile
Dockerfile是为快速构建docker image而设计的,当你使用dockerbuild 命令的时候,docker 会读取当前目录下的命名为Dockerfile(首字母大写)的纯文本文 ...
随机推荐
- 1.HVV介绍
HVV介绍 1.护网职责划分 红队:打点人员.攻击人员.社工人员 蓝队:监控人员.研判人员.溯源人员 2.护网需要具备的技能 红队: 外围打点能力.漏洞挖掘能力.漏洞分析能力.权限提升能力.权限维持能 ...
- Logoist - 适用于设计师以及初次使用者的快速制作精美 logo 工具
>从简单的标识到设计开发.它只需要一点 ...
- uniapp H5图片编辑器(安卓/iOS适用)
箭头绘制参考了:https://blog.csdn.net/qq_45939676/article/details/127425426 这位大佬的文章 gitee地址: https://gitee.c ...
- vue指令之事件指令
目录 什么是事件指令 示例 什么是事件指令 事件指的是:点击事件,双击事件,划动事件,焦点事件... 语法 v-on:事件名='函数' # 注意:函数必须写在 methods配置项中 示例 # 点击按 ...
- 二进制安装Kubernetes(k8s) v1.24.0 IPv4/IPv6双栈 (三主俩从)
二进制安装Kubernetes(k8s) v1.24.0 IPv4/IPv6双栈 (三主俩从) Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安装 后续尽可 ...
- JS 一些基本正则校验
记录下JS一些基本正则校验,以备后需. 1 //手机号码校验 2 function formCheckMobilePhone(data) { 3 var pattern = /^[1-9]{1}\d{ ...
- 创建SVN和设置密码以及SVN自动更新
重新创建版本库: svnadmin create /usr/local/svn/month_exam //创建一个svn版本仓库month_exam(month_exam可以随便起名字) cd ...
- 轻量级Web框架Flask(二)
Flask-SQLAlchemy MySQL是免费开源软件,大家可以自行搜索其官网(https://www.MySQL.com/downloads/) 测试MySQL是否安装成功 在所有程序中,找到M ...
- Gateway服务网关+过滤器
为什么需要网关 Gateway网关是我们服务的守门神,所有微服务的统一入口. 网关的核心功能特性: 请求路由 权限控制 限流 架构图: 权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果 ...
- 使用Vue.js实现文字跑马灯效果
实现文字跑马灯效果,首先用到 substring()截取 和 setInterval计时器 clearInterval()清除计时器 效果如下: 实现代码如下: <!DOCTYPE html&g ...