Why service external IP address is in a pending state?
Should I enable any load balancer for my kubernetes master?
I'm using kubernetes on digital ocean cloud.
To provision Load Balancer or Persistent Volumes in Cloud, Kubernetes uses Cloud controller Manager. Follow this guide to know more: Kubernetes Cloud Controller Manager
It might happen that at the time of setting up your cluster you did not specified any Cloud controller to use that is why it is getting in pending state.
After configuring a Cloud controller Manager you should be able to provision Load Balancer and see External IP.
Also this answer here might help: Kubernetes External Load Balancer Service on DigitalOcean
I had the same problem, after checking every where I realised that there is a service limit for load balancers.
I could see this log Error syncing load balancer: failed to ensure load balancer: failed to create load-balancer: POST https://api.digitalocean.com/v2/load_balancers: 429 (request "XXX-YYY-ZZZ") You have reached your load balancer limit, maximum allowed 10.
So I created a support ticket to increase this limit and the problem was solved