title: Can't access minikube service using NodePort from host on Mac
body: <p>I'm trying to deploy a single web application to Minikube on my Mac, and then access it in the browser.  I'm trying to use the simplest of setups, but it's not working, I just get a &quot;connection refused&quot; error and I can't figure out why.</p>
  <p>This is what I'm trying:</p>
  <pre><code>$ minikube start --insecure-registry=docker.example.com:5000
    minikube v1.12.3 on Darwin 10.14.6
  ✨  Using the docker driver based on existing profile
    Starting control plane node minikube in cluster minikube
    Restarting existing docker container for &quot;minikube&quot; ...
    Preparing Kubernetes v1.18.3 on Docker 19.03.8 ...
    Verifying Kubernetes components...
    Enabled addons: default-storageclass, storage-provisioner
    Done! kubectl is now configured to use &quot;minikube&quot;
  
  $ eval $(minikube -p minikube docker-env)
  
  $ docker build -t web-test .
  Sending build context to Docker daemon  16.66MB
  Step 1/3 : FROM docker.example.com/library/openjdk:11-jdk-slim
  11-jdk-slim: Pulling from library/openjdk
  bf5952930446: Pull complete 
  092c9b8e633f: Pull complete 
  0b793152b850: Pull complete 
  7900923f09cb: Pull complete 
  Digest: sha256:b5d8f95b23481a9d9d7e73c108368de74abb9833c3fae80e6bdfa750663d1b97
  Status: Downloaded newer image for docker.example.com/library/openjdk:11-jdk-slim
   ---&gt; de8b1b4806af
  Step 2/3 : COPY target/web-test-0.0.1-SNAPSHOT.jar app.jar
   ---&gt; 6838e3db240a
  Step 3/3 : ENTRYPOINT [&quot;java&quot;,&quot;-Djava.security.egd=file:/dev/./urandom&quot;,&quot;-jar&quot;,&quot;app.jar&quot;]
   ---&gt; Running in 550bf762bf2d
  Removing intermediate container 550bf762bf2d
   ---&gt; ce1468d1ff10
  Successfully built ce1468d1ff10
  Successfully tagged web-test:latest
  
  $ kubectl apply -f web-test-service.yaml 
  service/web-test unchanged
  
  $ kubectl apply -f web-test-deployment.yaml 
  deployment.apps/web-test configured
  
  $ kubectl get po -o wide
  NAME                        READY   STATUS    RESTARTS   AGE   IP           NODE       NOMINATED NODE   READINESS GATES
  web-test-6bb45ffc54-8mxbc   1/1     Running   0          16m   172.18.0.2   minikube   &lt;none&gt;           &lt;none&gt;
  
  $ kubectl get svc
  NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
  kubernetes   ClusterIP   10.96.0.1       &lt;none&gt;        443/TCP          16m
  web-test     NodePort    10.102.19.201   &lt;none&gt;        8080:31317/TCP   16m
  
  $ minikube ip
  127.0.0.1
  
  $ curl http://127.0.0.1:31317
  curl: (7) Failed to connect to 127.0.0.1 port 31317: Connection refused
  
  
  $ kubectl logs web-test-6bb45ffc54-8mxbc
  
    .   ____          _            __ _ _
   /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
   \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    '  |____| .__|_| |_|_| |_\__, | / / / /
   =========|_|==============|___/=/_/_/_/
   :: Spring Boot ::        (v2.3.3.RELEASE)
  
  2020-08-26 14:45:32.692  INFO 1 --- [           main] com.example.web.WebTestApplication           : Starting WebTestApplication v0.0.1-SNAPSHOT on web-test-6bb45ffc54-8mxbc with PID 1 (/app.jar started by root in /)
  2020-08-26 14:45:32.695  INFO 1 --- [           main] com.example.web.WebTestApplication           : No active profile set, falling back to default profiles: default
  2020-08-26 14:45:34.041  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer      : Tomcat initialized with port(s): 8080 (http)
  2020-08-26 14:45:34.053  INFO 1 --- [           main] o.apache.catalina.core.StandardService       : Starting service [Tomcat]
  2020-08-26 14:45:34.053  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine      : Starting Servlet engine: [Apache Tomcat/9.0.37]
  2020-08-26 14:45:34.135  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]           : Initializing Spring embedded WebApplicationContext
  2020-08-26 14:45:34.135  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext     : Root WebApplicationContext: initialization completed in 1355 ms
  2020-08-26 14:45:34.587  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor      : Initializing ExecutorService 'applicationTaskExecutor'
  2020-08-26 14:45:34.797  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer      : Tomcat started on port(s): 8080 (http) with context path ''
  2020-08-26 14:45:34.810  INFO 1 --- [           main] com.example.web.WebTestApplication           : Started WebTestApplication in 2.808 seconds (JVM running for 3.426)
  
  
  $ minikube ssh
  docker@minikube:~$ curl 10.102.19.201:8080
  Up and Running
  docker@minikube:~$
  </code></pre>
  <p>As you can see, the web app is up and running, and I can access it from inside the cluster by doing a <code>minikube ssh</code>,  but from outside the cluster, it won't connect.  These are my service and deployment manifests:</p>
  <p>web-test-service.yaml:</p>
  <pre class="lang-yaml prettyprint-override"><code>apiVersion: v1
  kind: Service
  metadata:
    labels:
      app: web-test
    name: web-test
  spec:
    type: NodePort
    ports:
    - nodePort: 31317
      port: 8080
      protocol: TCP
      targetPort: 8080
    selector:
      app: web-test
  </code></pre>
  <p>web-test-deployment.yaml:</p>
  <pre class="lang-yaml prettyprint-override"><code>apiVersion: apps/v1
  kind: Deployment
  metadata:
    labels:
      app: web-test
    name: web-test
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: web-test
    strategy: {}
    template:
      metadata:
        labels:
          app: web-test
      spec:
        containers:
        - image: web-test
          imagePullPolicy: Never
          name: web-test
          ports:
          - containerPort: 8080
        restartPolicy: Always
  status: {}
  </code></pre>
  <p>Anyone have any idea what I'm doing wrong?  Or perhaps how I could try to diagnose the issue further? I have allow tried deploying an ingress, but that doesn't work either.</p>