<p>Whenever I expose a Kubernetes Service as a Load Balancer the external-IP is in forever <code>pending</code> state. </p>

<p>So, I am not able to access the <code>dgraph ratle</code> through my browser. </p>

<p>I needed to expose my Service through NodePort so that I can access it with <code>IP:node-port</code>. </p>

<p>Here I created a NodePort Service for my <code>dgraph ratle</code> public. I can <code>curl</code> <code>IP:node-port</code> and able to get the result but I cannot access it in my web browser.
I'm using Kubernetes on Digital Ocean
Kubernetes version <code>v1.12</code>. </p>

<p>Help me with:</p>

<ol>
<li><p>Get pending external-IP or</p></li>
<li><p>Exposing the container in public or</p></li>
<li><p>What am I missing?</p></li>
</ol>

<p><a href="https://i.stack.imgur.com/Xe532.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Xe532.png" alt="kubectl describe svc dgraph-ratle-public"></a></p>

AATHITH RAJENDRAN
<p>You can't reach <a href="https://en.wikipedia.org/wiki/Private_network" rel="nofollow noreferrer">private IP addresses</a> over the Internet, so you need to create a Load Balancer in front of your Kubernetes cluster, or some kind of VPN into your cluster.</p>

<p>Kubernetes default <a href="https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/" rel="nofollow noreferrer">cloud controller manager</a> doesn't support DigitalOcean. You can create a Load Balancer for Kubernetes cluster nodes manually, or you need to install an additional <a href="https://github.com/digitalocean/digitalocean-cloud-controller-manager" rel="nofollow noreferrer">cloud-controller-manager for DigitalOcean cloud</a>  as it is mentioned in the <a href="https://github.com/digitalocean/digitalocean-cloud-controller-manager/blob/master/docs/getting-started.md" rel="nofollow noreferrer">manual</a>:</p>

<blockquote>
  <ol>
  <li>Clone the git repo: </li>
  </ol>
</blockquote>

<pre><code>    $ git clone https://github.com/digitalocean/digitalocean-cloud-controller-manager.git
</code></pre>

<blockquote>
  <ol start="2">
  <li>To run digitalocean-cloud-controller-manager, you need a DigitalOcean personal access token. If you are already logged in, you can create one <a href="https://cloud.digitalocean.com/settings/api/tokens" rel="nofollow noreferrer">here</a>. Ensure the token you create has both read and write access.</li>
  <li>Once you have a personal access token, create a Kubernetes Secret as a way for the cloud controller manager to access your token. (<a href="https://github.com/digitalocean/digitalocean-cloud-controller-manager/blob/master/scripts/generate-secret.sh" rel="nofollow noreferrer">using script</a>, <a href="https://github.com/digitalocean/digitalocean-cloud-controller-manager/blob/master/docs/getting-started.md#manually" rel="nofollow noreferrer">or manually</a>)</li>
  <li>Deploy <a href="https://github.com/digitalocean/digitalocean-cloud-controller-manager/blob/master/docs/getting-started.md#version" rel="nofollow noreferrer">appropriate version</a> of cloud-controller-manager:</li>
  </ol>
</blockquote>

<pre><code>    $ kubectl apply -f releases/v0.1.10.yml
    deployment "digitalocean-cloud-controller-manager" created
</code></pre>

<blockquote>
  <p>NOTE: the deployments in releases/ are meant to serve as an example. They will work in a majority of cases but may not work out of the box for your cluster.</p>
  
  <p>Cloud Controller Manager current version is: v0.1.10. This means that the project is still under active development and may not be production ready. The plugin will be bumped to v1.0.0 once the DigitalOcean Kubernetes product is released.</p>
</blockquote>

<p>Here you can find examples:</p>

<ul>
<li><a href="https://github.com/digitalocean/digitalocean-cloud-controller-manager/tree/master/docs/controllers/services/examples" rel="nofollow noreferrer">Load balancers</a></li>
<li><a href="https://github.com/digitalocean/digitalocean-cloud-controller-manager/tree/master/docs/controllers/node/examples" rel="nofollow noreferrer">Node Features with Digitalocean Cloud Controller Manager</a></li>
</ul>
