Почему мой 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 - 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

Мое главное требование - создать фильтр, который применяется только к исходящим запросам, идущим к некоторым .app.com . Я попытался преобразовать этот фильтр, чтобы сделать его совместимым с версией 1.2.5 (первая конфигурация), но я думаю, что он не работает.

Что не так с моим EnvoyFilter ?

0
задан 29 April 2021 в 19:43
1 ответ

Хорошо, после моих расследований у меня нет другого выбора, кроме как согласиться с двумя уже данными ответами ( ссылка1 ссылка2) и, к сожалению, заявляют то же самое..

Кажется, единственный вариант использования EnvoyFilter — это обновить Istio до последней версии. Трудное решение, я бы тоже подумал миллион раз, прежде чем прикасаться к чему-то, что работает стабильно, но опять же... Если вы хотите использовать EnvoyFilter, вам нужна более новая версия.

1
ответ дан 13 May 2021 в 09:03

Теги

Похожие вопросы