<p>Update:</p>

<p>I got the NodePort to work: <code>kubectl get services</code></p>

<pre><code>NAME                                       TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
kubernetes                                 ClusterIP   10.96.0.1       &lt;none&gt;        443/TCP                      7d
my-release-nginx-ingress-controller        NodePort    10.105.64.135   &lt;none&gt;        80:32706/TCP,443:32253/TCP   10m
my-release-nginx-ingress-default-backend   ClusterIP   10.98.230.24    &lt;none&gt;        80/TCP                       10m
</code></pre>

<p>Do I port-forward then?</p>

<p>Installing Ingress using Helm on Docker for Mac(Edge with Kubernetes)</p>

<p><a href="https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress" rel="nofollow noreferrer">https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress</a></p>

<p>Will this work on localhost - and if so, how to access a service?</p>

<p>Steps:</p>

<ol>
<li><code>helm install stable/nginx-ingress</code></li>
</ol>

<p>Output:</p>

<pre><code>NAME:   washing-jackal
LAST DEPLOYED: Thu Jan 18 12:57:40 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==&gt; v1/ConfigMap
NAME                                     DATA  AGE
washing-jackal-nginx-ingress-controller  1     1s

==&gt; v1/Service
NAME                                          TYPE          CLUSTER-IP     EXTERNAL-IP  PORT(S)                     AGE
washing-jackal-nginx-ingress-controller       LoadBalancer  10.105.122.1   &lt;pending&gt;    80:31494/TCP,443:32136/TCP  1s
washing-jackal-nginx-ingress-default-backend  ClusterIP     10.103.189.14  &lt;none&gt;       80/TCP                      1s

==&gt; v1beta1/Deployment
NAME                                          DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
washing-jackal-nginx-ingress-controller       1        1        1           0          0s
washing-jackal-nginx-ingress-default-backend  1        1        1           0          0s

==&gt; v1/Pod(related)
NAME                                                           READY  STATUS             RESTARTS  AGE
washing-jackal-nginx-ingress-controller-5b4d86c948-xxlrt       0/1    ContainerCreating  0         0s
washing-jackal-nginx-ingress-default-backend-57947f94c6-h4sz6  0/1    ContainerCreating  0         0s


NOTES:
The nginx-ingress controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace default get services -o wide -w washing-jackal-nginx-ingress-controller'

An example Ingress that makes use of the controller:

  apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    annotations:
      kubernetes.io/ingress.class: nginx
    name: example
    namespace: foo
  spec:
    rules:
      - host: www.example.com
        http:
          paths:
            - backend:
                serviceName: exampleService
                servicePort: 80
              path: /
    # This section is only required if TLS is to be enabled for the Ingress
    tls:
        - hosts:
            - www.example.com
          secretName: example-tls

If TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:

  apiVersion: v1
  kind: Secret
  metadata:
    name: example-tls
    namespace: foo
  data:
    tls.crt: &lt;base64 encoded cert&gt;
    tls.key: &lt;base64 encoded key&gt;
  type: kubernetes.io/tls
</code></pre>

<p>As far as I can tell from the output you posted, everything should be running smoothly in your local kubernetes cluster.</p>

<p>However, your ingress controller is exposed using a <code>LoadBalancer Service</code> as you can tell from the following portion of the output you posted:</p>

<pre><code>==&gt; v1/Service
NAME                                          TYPE          CLUSTER-IP     EXTERNAL-IP  PORT(S)                     AGE
washing-jackal-nginx-ingress-controller       LoadBalancer  10.105.122.1   &lt;pending&gt;    80:31494/TCP,443:32136/TCP  1s 
</code></pre>

<p>Services of type LoadBalancer require support from the underlying infrastructure, and will not work in your local environment.</p>

<p>However, a LoadBalancer service is also a <code>NodePort</code> Service. In fact you can see in the above snippet of output that your ingress controller is listening to the following ports:</p>

<pre><code>80:31494/TCP,443:32136/TCP
</code></pre>

<p>This means you should be able to reach your ingress controller on port 31494 and 32136 on your node's ip address.</p>

<p>You could make your ingress controller listen to more standard ports, such as 80 and 443, but you'll probably have to edit manually the resources created by the helm chart to do so.</p>
