Why does my load balancer respond with an HTTP 503 error?

DigitalOcean Load Balancers return an HTTP 503 error when there are either no target Droplets assigned to the load balancer, or all of the target Droplets are unhealthy.

If all of your target Droplets are correctly assigned to the load balancer, check the following things to see if there is a problem:

Health checks often fail due to firewalls or misconfigured backend server software.
By default, load balancers time out after the connection has been idle for 60 seconds. You can customize the timeout duration.
Kubernetes service ’externaltrafficpolicy’ field controls how nodes respond to health checks.