EnvoyFilter CRD说明 http connection manager is a filter in Envoy match: context: GATEWAY listener: filterChain: sni: app.example.com filter: name: "envoy.filters.network.httpconnectionmanager" patch: operation: MERGE value: typedconfig: "@type": "type.googleapis.com/envoy.extensions.filters.network.httpconnectionmanager.v3.HttpConnectionManager" xffnumtrustedhops: 5 commonhttpprotocoloptions: idletimeout: 30s 配置说明 EnvoyFilter 字段 类型 必选 说明 workloadSelector WorkloadSelector N 用于选择匹配的工作负载 configPatches EnvoyConfigObjectPatch[] N 需要下发到数据面的配置 priority int N 优先级定义,可用于处理个EnvoyFilter匹配同一个工作负载,且EnvoyFilter之间存在依赖关系的场景 1. 默认的生效顺序为根命名空间 > 工作负载命名空间,在一个EnvoyFilter内的多个patch按照定义的顺序生效 2. 如果优先级为负,则在默认生效规则之前生效,如果为正则在默认生效规则之后生效 3. 建议优先级定义时保留足够的间隔,用于插入新的补丁 EnvoyFilter.EnvoyConfigObjectPatch 字段 类型 必选 说明 applyTo ApplyTo N 匹配的位置,可选值包括LISTENER, FILTERCHAIN, NETWORKFILTER, HTTPFILTER, ROUTECONFIGURATION, VIRTUALHOST, HTTPROUTE, CLUSTER, EXTENSIONCONFIG, LISTENERFILTER match EnvoyConfigObjectMatch N 匹配条件 patch Patch N 补丁定义 EnvoyFilter.EnvoyConfigObjectMatch Envoy过滤器匹配条件 字段 类型 必选 说明 context PatchContext N 匹配的上下文,支持取值包括 ANY:匹配所有流量场景 SIDECARINBOUND:匹配sidecar入站方向流量 SIDECAROUTBOUND:匹配sidecar出站方向流量 GATEWAY:匹配网关场景 proxy ProxyMatch N 匹配数据面代理的版本、元数据等信息 listener ListenerMatch (oneof) N 监听器匹配 routeConfiguration RouteConfigurationMatch (oneof) N 路由匹配 cluster ClusterMatch (oneof) N 集群匹配 EnvoyFilter.ProxyMatch 字段 类型 必选 说明 proxyVersion string N 基于正则表达式匹配数据面代理版本 metadata map N 匹配数据面代理的元数据 EnvoyFilter.ListenerMatch 字段 类型 必选 说明 portNumber uint32 N 匹配监听器的端口号,不指定的话匹配所有端口 filterChain FilterChainMatch N 匹配特定filterchain listenerFilter string N 基于名字匹配监听器过滤器 name string N 基于名字匹配监听器 EnvoyFilter.ListenerMatch.FilterChainMatch 存在多个filter chain的情况下可以用于匹配特定filter chain 字段 类型 必选 说明 name uint32 N filter chain名称 sni string N 匹配sni名称 transportProtocol string N 仅对SIDECARINBOUND生效,支持tls和rawbuffer applicationProtocols string N 匹配的应用层协议,仅对sidecar生效,支持h2, http/1.1, http/1.0 filter FilterMatch N filter匹配条件 destinationPort uint32 N 匹配的目标端口 EnvoyFilter.ListenerMatch.FilterMatch 字段 类型 必选 说明 name string N 匹配过滤器名字 subFilter SubFilterMatch N subfilter匹配 EnvoyFilter.ListenerMatch.SubFilterMatch 字段 类型 必选 说明 name string N 匹配subfilter名字 EnvoyFilter.RouteConfigurationMatch 字段 类型 必选 说明 portNumber uint32 N 匹配服务的端口号 portName string N 进队GATEWAY场景生效,匹配端口名称 gateway string N 匹配网关,namespace/gatewayName格式 vhost VirtualHostMatch N 匹配虚拟服务 name string N 匹配特地路由名称 EnvoyFilter.RouteConfigurationMatch.VirtualHostMatch 字段 类型 必选 说明 name string N 匹配的虚拟服务名称 route RouteMatch N 匹配虚拟服务下特定的路由 EnvoyFilter.RouteConfigurationMatch.RouteMatch 字段 类型 必选 说明 name string N 匹配路由名称 action Action N 匹配路由类型,支持 ANY:所有类型 ROUTE:普通路由 REDIRECT:重定向路由 DIRECTRESPONSE:mock路由 EnvoyFilter.ClusterMatch 字段 类型 必选 说明 portNumber uint32 N 匹配服务的端口 service string N 匹配服务FQDN名称 subset string N 匹配服务分组名 name string N 匹配服务cluster名称