All the traffic is going to only single pod

Query

I have configured the Kubernetes service with the LoadBalancer type. I have four pods running.
All the requests are routed to a single pod. Once a new connection is established, then k8s service is routing the traffic to other pods.

Is there any option/setting to either k8s service or AWS LoadBalancer to route the traffic to all the pods uniformly?

Cluster information:

Kubernetes version: 1.26
Cloud being used: (put bare-metal if not on a public cloud) AWS
Installation method: AWS WKS
Host OS: Amazon Linux2

We’ve run into this same issue with things like gRPC or websockets that use TCP streams. The load balancer doesn’t break the session for good reason, but it has the symptom of traffic from that one connection never getting balanced. As you say, new connections get balanced across, but in my experience other than doing something drastic like switching to sessionless protocols or patterns like REST, you’re just going to have to be okay with your load balancer working on a connection by connection basis. I have seen some service meshes can coerce it to work as you would expect, like load balancing gRPC calls from the same session across multiple pods, but that’s some extra overhead that I also can’t speak to from experience.