Istio продолжает показывать ошибки TcpProxyValidationError
Изначально я создал EnvoyFilter для примененияidle_timeout
из5s
к исходящим запросам, исходящим от рабочих нагрузок с меткойapp: mecha-dev
.
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 v1.2.5
это очень старая версия и не поддерживаетEnvoyFilters
правильно, и API-интерфейс посланника для него устарел.
Поэтому я удалилEnvoyFilter
с использованиемkubectl
.
Но даже после удаления фильтраistio-proxy
Контейнеры с коляской снова и снова показывают мне следующую ошибку:
[2021-05-11 11:59:14.109][22][warning][config] [external/envoy/source/common/config/grpc_mux_subscription_impl.cc:73] gRPC config for type.googleapis.com/envoy.api.v2.Listener rejected: Error adding/updating listener(s) 10.155.0.113_443: Proto constraint validation failed (TcpProxyValidationError.StatPrefix: ["value length must be at least " '\x01' " bytes"]): idle_timeout {
seconds: 5
}
Я удалил модули и заново создал новые, но эта ошибка продолжает появляться. Есть ли что-нибудь еще, что мне нужно очистить или удалить, чтобы избавиться от этой ошибки?
1 ответ
Как вы уже поняли, в Istio 1.2.5 еще не поддерживалось .
Использование старых, неподдерживаемых версий программного обеспечения может привести к подобным случаям. В этой ситуации лучше всего будет перейти на более новую версию Istio и заново создатьEnvoyFilter
так, как вы изначально хотели.
Также, пожалуйста, имейте в виду, чтоfilterName
envoy.tcp_proxy
устарел с версии envoy 1.4.0 . Вы должны использоватьenvoy.filters.network.tcp_proxy
вместо.