Почему мой Istio EnvoyFilter с настройкой времени ожидания простоя TCP не работает?

Я создал 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 — версия envoyproxy, которую она использует —1.11.0-dev.

Мне удалось создать фильтр, но, похоже, он не дал никакого эффекта. Я проверил дамп конфигурации istio, но не смог найти там свой фильтр, поэтому думаю, что конфигурация моего фильтра неверна.

Я следовал этому документу , чтобы создать фильтр.

Документ не дает много информации. Поскольку версия Istio является старой, она не поддерживает мою предыдущую конфигурацию фильтра:

      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?

0 ответов

Другие вопросы по тегам