Istio 持续显示 TcpProxyValidationError 错误

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正确支持,并且相同的 envoy API 已经被弃用。

因此,我删除了EnvoyFilter使用kubectl

但是,即使删除了过滤器,istio-proxysidecar 容器仍然会反复显示以下错误:

[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
}

我删除了 Pod 并重新创建了新 Pod,但这个错误仍然出现。我还需要清理或删除其他内容来消除这个错误吗?

答案1

正如您已经意识到的,EnvoyFilterIstio 尚不支持1.2.5
使用旧的、不受支持的软件版本会让您面临此类情况。在这种情况下,最好的办法是升级到 Istio 的新版本并重新创建EnvoyFilter您最初想要的方式。

filterName envoy.tcp_proxy另外,请注意堕落的自特使以来1.4.0. 您应该使用envoy.filters.network.tcp_proxy

相关内容