<p>In minikube, how to expose a service using nodeport ?</p>

<p>For example, I start a kubernetes cluster using the following command and create and expose a port like this:</p>

<pre><code>$ minikube start
$ kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
$ kubectl expose deployment hello-minikube --type=NodePort
$ curl $(minikube service hello-minikube --url)
CLIENT VALUES:
client_address=192.168.99.1
command=GET
real path=/ ....
</code></pre>

<p>Now how to access the exposed service from the host? I guess the minikube node needs to be configured to expose this port as well. </p>

<p>I am not exactly sure what you are asking as it seems you already know about the <code>minikube service &lt;SERVICE_NAME&gt; --url</code> command which will give you a url where you can access the service. In order to open the exposed service, the <code>minikube service &lt;SERVICE_NAME&gt;</code> command can be used:</p>
<pre><code>$ kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
deployment &quot;hello-minikube&quot; created
$ kubectl expose deployment hello-minikube --type=NodePort
service &quot;hello-minikube&quot; exposed
$ kubectl get svc
NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
hello-minikube   10.0.0.102   &lt;nodes&gt;       8080/TCP   7s
kubernetes       10.0.0.1     &lt;none&gt;        443/TCP    13m

$ minikube service hello-minikube
Opening kubernetes service default/hello-minikube in default browser...
</code></pre>
<p>This command will open the specified service in your default browser.</p>
<p>There is also a <code>--url</code> option for printing the url of the service which is what gets opened in the browser:</p>
<pre><code>$ minikube service hello-minikube --url
http://192.168.99.100:31167
</code></pre>
