Why does LoadBalancer go down?

Posted October 20, 2020 340 views

Hi all
After deploying ingress to K8S the loadbalancer has became the status
What am I doing wrong?



Submit an Answer
1 answer

Hello @anujitmarty

The LB is checking a specific nodePort service not just checking whether a node is healthy. To save on overhead from unnecessary network hops between nodes, only nodes hosting pods for the LoadBalancer service will report as healthy.

externalnetworkpolicy setting on kubernetes services by default is set to “Local”. This means a node without a pod running locally for that service will reject the LB healthcheck and show as down.

externaltrafficpolicy set to “cluster” would allow the nodes to forward that traffic to other nodes that are hosting pods for that service. In this case even a node not hosting a pod for that particular service would show as “UP” as it would then just forward it to a node than can, including that extra network hop.

To change this setting for a particular service use the following command:

kubectl patch svc myservice -p ’{“spec”:{“externalTrafficPolicy”:“Local”}}’

An important thing to note here is that if using the externaltrafficpolicy of “cluster” you will lose the original client IP address due to this extra network hop. So if your application is checking for or dependent on knowing the client IP, the “Local” setting is required.

You can find more information on externaltrafficpolicy here:

I hope this helps!

Best Regards,
Purnima Kumari
Developer Support Engineer II, DigitalOcean