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