I have prepared two Kubernetes installations on AWS, one with Heptio Kubernetes Quick start and the second one with Rancher on RancherOS.
In both installations I run my hello-world app and configured the loadbalancing. After that accessing the app via loadbalancer is extremely slow - it takes around 10 seconds. If I access it via the browser, then just the first request is slow, subsequent requests are a lot faster.
Here is what I do to configure my app:
kubectl run tporeba-docker-webapp --image=tporeba/tporeba-docker-webapp:latest --port=8080
kubectl scale deployment tporeba-docker-webapp --replicas=5
kubectl expose deployment/tporeba-docker-webapp --type="LoadBalancer" --port=80 --target-port=8080
Last command also creates the AWS loadbalancer, which dns name I can get by running:
kubectl describe service tporeba-docker-webapp | grep "LoadBalancer Ingress" | awk -P '{print $3'}
The used kubernetes versions are: 1.9.2 for heptio installation
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b
", GitTreeState:"clean", BuildDate:"2018-01-18T09:42:01Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
and 1.8.5-rancher1 for Rancher installation relspectively:
Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.5-rancher1", GitCommit:"6cb179822b9f77893eac5612c91a0ed7c0941b45", GitTreeState:"clean", BuildDate:"2017-12-11T17:40:37Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Am I doing something wrong with the configuration? Why the loadbalancer is causing such delays? When I configure the loadbalancing in Rancher (instead of K8s) then the response arrives in 0.5s.
Any ideas?