We've deployed a service to Kubernetes (EKS) with an NLB service and 2 pods running behind it. When I run a load test (simple GET request) from my local machine all requests go to the one pod while the other one sits idle.
When I test this out manually using 3 different clients (Safari, FF and curl), the request seems to find its way to both pods. So the issue seems to be with the load testing client.
Why are the requests having sticky behaviour when I run my load test? Is this something that can be worked around so the requests from my load test can be distributed across the pods? It's affecting the results of my test as the pods eventually scale out but requests only continue to be served by a single pod.
The tool I'm using is k6.io. I've tried setting a configuration to disable connection re-use but that didn't help either.
This seemed to have been an issue with the load testing tool I was using and somewhat related to this issue - https://github.com/loadimpact/k6/issues/1752.
I bumped up the version of the k6 Docker image I was using and it correctly picked up the noConnectionReuse
option.