<p>There are various answers for very similar questions around SO that all show what I <em>expect</em> my deployment to look like, however mine does not.</p>

<ul>
<li>I am running Minikube 0.25, with Kubernetes 1.9 on Windows
10.</li>
<li>I have successfully created a node, a replication controller, and a
single pod template has been replicated 10 times. </li>
<li>The node is Minikube, and is assigned the IP address 10.49.106.251</li>
<li>The dashboard is available at 10.49.106.251:30000</li>
</ul>

<p>I am deploying a service with a YAML file, but the service is never assigned an external IP - the result is the same if I happen to use <code>kubectl expose</code>. </p>

<p>The YAML file that I am using:</p>

<pre><code>kind: Service
apiVersion: v1
metadata:
  name: hello-service
spec:
  type: NodePort
  selector:
    app: hello-world
  ports:
  - protocol: TCP
    port: 8080
</code></pre>

<p>I can also use the YAML file to assign an external IP - I assign it the same value as the node IP address. Either way results in no possible connection to the service. I should also point out that the 10 replicated pods all match the selector.</p>

<p>The result of running <code>kubectl get svc</code> for the default, and after updating the external IP are below:</p>

<pre><code>NAME            TYPE        CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
hello-service   NodePort    10.108.61.233   &lt;none&gt;          8080:32406/TCP   1m
hello-service   NodePort    10.108.61.233   10.49.106.251   8080:32406/TCP   1m
</code></pre>

<p>The tutorial I have been following, and the other answers on SO show a result similar to:</p>

<pre><code>hello-service   NodePort    10.108.61.233   &lt;nodes&gt;   8080:32406/TCP   1m
</code></pre>

<p>Where the difference is that the external IP is set to &lt;nodes&gt;</p>

<p>I have encountered a number of issues when running locally - is this just another case of doing so, or has someone else identified a way to get around the external IP assignment issue?</p>

<p>For local development purpose, I have also met with the problem of exposing a 'public IP' for my local development cluster.
Fortunately, I have found one of the kubectl command which can help:</p>
<pre><code>kubectl port-forward service/service-name 9092
</code></pre>
<p>Where 9092 is the container port to expose, so that I can access applications inside the cluster, on my local development environment.</p>
<p>The important note is that it is not a 'production' grade solution.
Works well as a temporary hack to get to the cluster insides.</p>
