<p>MacOS Big Sur 11.6.8
minikube version: v1.28.0</p>
<p>Following several tutorials on ingress and attempting to get it working locally. Everything appears to work: manual <code>minikube service foo</code> works, <code>kubectl get ingress</code> shows an IP, pinging the designated host name resolves the expected IP, etc. I went through a few different tutes with the same results.</p>
<p>I boiled it down to the simplest replication from the tutorial at <a href="https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/" rel="nofollow noreferrer">kubernetes.io</a> :</p>
<pre><code># kubectl create deployment web --image=gcr.io/google-samples/hello-app:1.0
# kubectl expose deployment web --type=NodePort --port=8080
# kubectl get service web (ensure it's a node port)
# minikube service web --url (test url)
# kubectl apply -f ingress_hello_world.yaml
# curl localkube.com
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: localkube.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web
                port:
                  number: 8080
</code></pre>
<p>Manual service works:</p>
<pre><code>&gt;minikube service web --url
http://127.0.0.1:50111
❗  Because you are using a Docker driver on darwin, the terminal needs to be open to run it.

&gt;curl http://127.0.0.1:50111
Hello, world!
Version: 1.0.0
Hostname: web-84fb9498c7-hnphb
</code></pre>
<p>Ingress looks good:</p>
<pre><code>&gt;minikube addons list | grep ingress
| ingress                     | minikube | enabled ✅   | Kubernetes                     |

&gt;kubectl get ingress
NAME              CLASS   HOSTS           ADDRESS        PORTS   AGE
example-ingress   nginx   localkube.com   192.168.49.2   80      15m
</code></pre>
<p>ping resolves the address mapped in /etc/hosts:</p>
<pre><code>&gt;ping localkube.com
PING localkube.com (192.168.49.2): 56 data bytes
</code></pre>
<p>I have looked through similar questions with no positive results. I have gone from this simple example to apache to mongo deployments via config files. Each time I can get to the app through a manual service mapping or by creating an external service (LoadBalancer / nodePort), but when I get to the Ingress part the config applies with no errors and everything appears to be working except for it actually... working.</p>

<p>The behavior you are describing is most probably because the <code>ingress and ingress-dns addons</code> are currently only supported on Linux Systems when using the Docker driver, as mentioned in the <a href="https://minikube.sigs.k8s.io/docs/drivers/docker/#known-issues" rel="nofollow noreferrer">Known Issues</a> section of the minikube documentation.</p>
<p>Minikube supports ingress differently on the Mac and Linux.</p>
<p>On Linux the ingress is fully supported and therefore does not need the use of minikube tunnel.</p>
<p>On Mac there is an open issue due to a network issue. The documentation states that the minikube ingress addon is not supported, seems misleading if not incorrect. It's just supported differently (and not as well).</p>
<p>Please go through <a href="https://minikube.sigs.k8s.io/docs/handbook/addons/ingress-dns/" rel="nofollow noreferrer">Ingress DNS</a> and  similar <a href="https://stackoverflow.com/questions/70961901/ingress-with-minikube-working-differently-on-mac-vs-ubuntu-when-to-set-etc-host">SO</a> for more information.</p>
