为什么我的具有 TCP 空闲超时设置的 Istio EnvoyFilter 不起作用?

为什么我的具有 TCP 空闲超时设置的 Istio EnvoyFilter 不起作用?

我创建了一个 EnvoyFilter,用于将 TCP 空闲超时应用于出站请求。这是我的过滤器配置:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: tcp-idle-timeout
spec:
  workloadSelector:
    labels:
      app: mecha-dev
  filters:
    - listenerMatch:
        listenerType: SIDECAR_OUTBOUND
        listenerProtocol: TCP
      filterName: envoy.tcp_proxy
      filterType: NETWORK
      filterConfig:
        idle_timeout: 5s

istio版本是1.2.5,它使用的envoyproxy版本是1.11.0-dev

我成功创建了过滤器,但似乎没有任何效果。我检查了 istio 配置转储,但在那里找不到我的过滤器,所以我认为我的过滤器配置是错误的。

我跟着这个文件创建过滤器。

该文档没有提供太多信息。由于 Istio 版本1.2.5较旧,因此它不支持我之前的过滤器配置:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: listener-timeout-tcp
  namespace: istio-system
spec:
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      context: SIDECAR_OUTBOUND
      listener:
        filterChain:
          sni: some.app.com
          filter:
            name: envoy.filters.network.tcp_proxy
    patch:
      operation: MERGE
      value:
        name: envoy.filters.network.tcp_proxy
        typed_config:
          '@type': type.googleapis.com/envoy.config.filter.network.tcp_proxy.v2.TcpProxy
          idle_timeout: 5s

我的主要要求是创建一个仅适用于发往 的出站请求的过滤器some.app.com。我尝试转换此过滤器以使其版本1.2.5兼容(第一个配置),但我认为它不起作用。

我的 出了什么问题EnvoyFilter

答案1

好的,所以经过我的调查,我别无选择,只能同意已经给出的两个答案(链接1 链接2) 并且不幸的是陈述了同样的事情..

似乎您唯一可以使用的选择EnvoyFilter是将 Istio 升级到最新版本。这是一个艰难的决定,在接触运行稳定的产品之前,我也会考虑无数次,但话又说回来……如果您想使用,那么EnvoyFilter您需要一个更新的版本。

相关内容