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вместо.

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