首页 > 其他分享 >一张图快速了解 Istio 的 EnvoyFilter

一张图快速了解 Istio 的 EnvoyFilter

时间:2023-06-13 09:13:22浏览次数:30  
标签:一张 EnvoyFilter 配置 补丁 Istio 应用 过滤器

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 将补丁应用于初始化配置。

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

思维导图

EnvoyFilter@万猫学社

微信公众号:万猫学社

微信扫描二维码

关注后回复「电子书」

获取12本Java必读技术书籍

标签:一张,EnvoyFilter,配置,补丁,Istio,应用,过滤器
From: https://www.cnblogs.com/heihaozi/p/17476533.html

相关文章

  • 在Istio中,到底怎么获取 Envoy 访问日志?
    Envoy访问日志记录了通过Envoy进行请求/响应交互的相关记录,可以方便地了解具体通信过程和调试定位问题。环境准备部署httpbin服务:kubectlapply-fsamples/httpbin/httpbin.yaml部署sleep服务:kubectlapply-fsamples/sleep/sleep.yamlhttpbin服务作为接收请......
  • 1、istio工作原理
    Istio是一个开源的服务网格框架,它的主要功能是提供流量管理、安全策略和监控能力。而Pilot、Galley和Citadel则是Istio的三个组件,各自担任不同的角色:Pilot负责服务发现、负载均衡、流量路由和故障恢复等功能,同时也是整个网格中数据平面上的代理。Galley则是Istio配置系统的组件,它......
  • 2、istio部署
    官网:istio.io下载isitoctl客户端:cd/usr/local/src#下载curl-Lhttps://istio.io/downloadIstio|sh-#命令软链接ln-s/usr/local/istio-1.17.2/usr/local/istio#exportPATH="$PATH:/usr/local/istio/bin"istio目录是Istio控制面(ControlPlane)的安装目录,其中包......
  • 5000字、12 连环炮、一张图快速搞定线程池
    写在前面前面文章中,我们总结了JVM18连环炮、并发并最基础的12连环炮,建议先阅读:连环炮继续走起,今天我给大家总结了线程池的12连环炮。1、为什么要创建线程池?2、创建线程池有哪些方式?3、Executors能创建几种常用线程池?4、线程池有哪些参数?5,能说说线程池原理吗?6、线程池有哪些拒绝策......
  • 让一张图片从模糊慢慢变清晰动画过程
    importjava.io.IOException;importjava.io.InputStream;importandroid.app.Activity;importandroid.content.Context;importandroid.content.res.AssetManager;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Bundle;......
  • 【隐写】开局一张图,啥也看不出
    最近遇到一个CTF题目,上面就一张图片是什么?啥都看不出来。今天来看一下CTF图片隐写题目,在图片里面隐藏一些不为人知的flag呢?本次实验的地址为:《CTFStegano练习之隐写6》。首先来看题目。在实验主机上的C:\Stegano\6目录下提供了pic1.jpg以及pic2.jpg两个文件,请对这两文件进行分析,找......
  • ChatGPT使用小技巧—如何快速制作一张表格?
    ChatGPT使用技巧—如何快速制作表格?一、背景:        在学习或工作中,时常会需要做一些表格进行数据统计、分析,通常我们会用word或者excel做出表格,然后把数据一个个复制进去,非常慢,用了ChatGPT之后,你会发现工作会变得如此简单。二、所需工具    ChatGPT平......
  • Isito 入门:为什么学 Istio、Istio 是什么
    1,Istio概述......
  • ingress 调用istio ingress 控制器
    清理环境[root@k8s-master01httpbin]#  kubectldelete-fhttpbin-gateway1.yaml-nistiogateway.networking.istio.io"httpbin-gateway"deletedvirtualservice.networking.istio.io"httpbin"deleted[root@k8s-master01httpbin]#[root@k8s-master......
  • Istio 实现 ext-authz 外部扩展鉴权以及对接基于 k8s 的微服务
    Istio实现ext-authz外部扩展鉴权以及对接基于k8s的微服务可以实现基于redis的token鉴权以及实现rbac鉴权。转载请注明来源:https://janrs.com/vrsrIstio的外部鉴权本质是基于Envoy实现的,直接看Envoy的代码,链接地址:点击自动跳转Isio官方的Demo代码,链接:点击自动跳......