I created a simple IngressRouteTCP and a service. The service is a regular ClusterIP - points to two Pods (scaled deployment). I do see two Pods in Traefik dashboard so it seems traefik detect that but it always routes to the same Pod. When trying to setup a regular loadbalancer with external IP (and not use traefik) everything works.
Version 2.1.4 (but tested also on 2.1.9)
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: ingressroutetcp-livestream
spec:
entryPoints:
- rtmp
routes:
- match: HostSNI(`*`)
services:
- name: livestream-service
port: 1935
TerminationDelay: 400
Service:
....
type: ClusterIP
ports:
- port: 1935
targetPort: 1935
protocol: TCP
name: rtmp
My traefik TOML:
# traefik.toml
[log]
level = "DEBUG"
[serversTransport]
insecureSkipVerify = true
[ping]
[api]
dashboard = true
insecure = true
[entryPoints]
[entryPoints.traefik]
address = ":9000"
[entryPoints.web]
address = ":8000"
[entryPoints.websecure]
address = ":8443"
[entryPoints.rtmp]
address = ":1935"
[providers.kubernetesCRD]
[providers.kubernetesIngress]
[[tls.certificates]]
certFile = "/ssl-dev/tls.crt"
keyFile = "/ssl-dev/tls.key"
Full issue/config here: https://github.com/containous/traefik/issues/6566