I have a k8s multi cluster setup with shared control plane mode on AWS and I have a persistent TCP connection from primary cluster to the remote clusters.
The problem is that these TCP connections are truncated after a few minutes when idle, but from the container that starts the connection, it is still on ESTABLISHED status, so it can’t be recreated at application level.
It looks like the connection between the two envoys is truncated and it is not recreated.
We tried with the following destination rule to set better tcpKeepalive:
apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: testrule spec: host: remote-service.test.svc.cluster.local trafficPolicy: connectionPool: tcp: maxConnections: 10000 connectTimeout: 20s tcpKeepalive: time: 20s interval: 75s
This workaround seems to solve the problem, but is this the best way to fix it?