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