<h3>Summary</h3>
<p>trying to get <code>minikube-test-ifs.com</code> to map to my deployment using minikube.</p>
<h3>What I Did</h3>
<p><code>minikube start</code><br>
<code>minikube addons enable ingress</code><br>
<code>kubectl apply -f &lt;path-to-yaml-below&gt;</code><br>
<code>kubectl get ingress</code><br>
Added ingress ip mapping to /etc/hosts file in form <code>&lt;ip&gt; minikube-test-ifs.com</code><br>
I go to chrome and enter <code>minikube-test-ifs.com</code> and it doesn't load.<br>
I get &quot;site can't be reached, took too long to respond&quot;</p>
<h4>yaml file</h4>
<p>note - it's all in the default namespace, I don't know if that's a problem.<br>
There may be a problem in this yaml, but I checked and double checled and see no potential error... unless I'm missing something</p>
<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-deployment
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: test
        image: nginx
        ports:
          - name: client
            containerPort: 3000
---
apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  selector:
    app: test
  ports:
    - name: client
      protocol: TCP
      port: 3000
      targetPort: 3000
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress  
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: minikube-test-ifs.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: test-service
            port:
              number: 3000

</code></pre>
<h3>OS</h3>
<p>Windows 10</p>
<h3>Other Stuff</h3>
<p>I checked <a href="https://stackoverflow.com/questions/58561682/minikube-with-ingress-example-not-working">Minikube with ingress example not working</a> but I already added to my /etc/hosts and I also tried removing the <code>spec.host</code> but that still doesn't work... <br>
also checked <a href="https://stackoverflow.com/questions/64143984/minikube-ingress-nginx-controller-not-working">Minikube Ingress (Nginx Controller) not working</a> but that person has his page already loading so not really relevent to me from what I can tell</p>
<h3>Any Ideas?</h3>
<p>I watched so many Youtube tutorials on this and I follow everything perfectly. I'm still new to this but I don't see a reason for it not working?</p>
<h1>Edit</h1>
<p>When I run <code>kubectl describe ingress &lt;ingress&gt;</code> I get:</p>
<pre><code>  Type    Reason  Age               From                      Message
  ----    ------  ----              ----                      -------
  Normal  Sync    8s (x5 over 19m)  nginx-ingress-controller  Scheduled for sync
</code></pre>
<p>How do I get it to sync? Is there a problem since it's been &quot;Scheduled for sync&quot; for a long time</p>

<p><strong>Overview</strong></p>
<ul>
<li>Ingress addon for Minikube using docker driver only works on linux</li>
<li>Docker for Windows uses Hyper-V, therefore, if the Docker daemon is running, you will <b>not be able</b> to use VM platforms such as VirtualBox or VMware</li>
<li>If you have Windows Pro, Enterprise or Education, you may be able to get it working if you use Hyper-V as your minikube cluster (see Solution 1)</li>
<li>If you don't want to upgrade Windows, you can open a minikube cluster on a Linux Virtual Machine and run all your tests there. This will require you to configure some Windows VM settings in order to get your VM's to run (see Solution 2). Note that you can only run <b>either</b> Docker or a VM platform (other than Hyper-V) but <b>not both</b> (See The Second Problem for why this is the case).</li>
</ul>
<p><strong>The Problem</strong></p>
<p>For those of you who are in the same situation as I was, the problem lies in the fact that the minikube ingress addon only works for Linux OS <b>when using the docker driver</b> (Thanks to @rriovall for showing me this <a href="https://minikube.sigs.k8s.io/docs/drivers/docker/#known-issues" rel="nofollow noreferrer">documentation</a>).</p>
<p><strong>The Second Problem</strong></p>
<p>So the solution should be simple, right? Just use a different driver and it should work. The problem here is, when Docker is intalled on Windows, it uses the built in Hyper-V virtualization technology which by default seems to disable all other virtualizatioin tech.</p>
<p>I have tested this hypothesis and this seems to be the case. When the Docker daeomon is running, I am unable to boot any virtual machine that I have. For instance, I get an error when I tried to run my VM's on VirtualBox and on VMWare.</p>
<p>Furthermore, when I attemt to start a minikube cluster using the virtualbox driver, it gets stuck &quot;booting the kernel&quot; and then I get a <code>This computer doesn't have VT-X/AMD-v enabled</code> error. This error is false as I do have VT-X enabled (I checked my BIOS). This is most likely due to the fact that when Hyper-V is enabled, all other types of virtualization tech <b>seems</b> to be disabled.</p>
<p>For my personal machine, when I do a search for &quot;turn windows features on or off&quot; the Docker daemon enabled &quot;Virtual Machine Platform&quot; and then asked me to restart my computer. This happened when I installed Docker. As a test, I turned off both &quot;Virtual Machine Platform&quot; and &quot;Windows Hypervsor Platform&quot; features and restarted my computer.</p>
<p>What happened when I did that? The Docker daemon stopped running and I could no longer work with docker, however, I was able to open my VM's <b>and</b> I was able to start my minikube cluster with virtualbox as the driver. The problem? Well, Docker doesn't work so when my cluster tries to pull the docker image I am using, it won't be able to.</p>
<p>So here lies the problem. Either you have VM tech enables and Docker disabled, or you have VM tech (other than Hyper-V, I'll touch on that soon) disabled and Docker enabled. But you can't have both.</p>
<p><strong>Solution 1</strong> (Untested)</p>
<p>The simplest solution would probably be upgrading to Windows Pro, Enterpriseor or Education. The Hyper-V platform is not accessable on normal Windows. Once you have upgraded, you should be able to use Hyper-V as your driver concurrently with the Docker daemon. This, in theory, should make the ingress work.</p>
<p><strong>Solution 2</strong> (Tested)</p>
<p>If you're like me and don't want to do a system upgrade for something so miniscule, there's another solution.</p>
<p>First, search your computer for the &quot;turn windows features on or off&quot; section and disable &quot;Virtual Machine Platform&quot; and &quot;Windows Hypervisor Platform&quot; and restart your computer. (See you in a bit :D)</p>
<p>After that, install a virtual machine platform on your computer. I prefer <a href="https://www.virtualbox.org/wiki/Downloads" rel="nofollow noreferrer">VirtualBox</a> but you can also use others such as <a href="https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html" rel="nofollow noreferrer">VMware</a>.</p>
<p>Once you have a VM platform installed, add a new Linux VM. I would recommend either <a href="https://www.debian.org/" rel="nofollow noreferrer">Debian</a> or <a href="https://ubuntu.com/download/desktop" rel="nofollow noreferrer">Ubuntu</a>. If you are unfamiliar with how to set up a VM, <a href="https://www.youtube.com/watch?v=cx8GzudB6uE" rel="nofollow noreferrer">this</a> video will show you how to do so. This will be the general set up for most iso images.</p>
<p>After you have your VM up and running, download <a href="https://minikube.sigs.k8s.io/docs/start/" rel="nofollow noreferrer">minikube</a> and <a href="https://docs.docker.com/engine/install/debian/" rel="nofollow noreferrer">Docker</a> on it. Be sure to install the correct version for your VM (for Debian, install Debian versions, for Ubuntu, install Ubuntu versions. Some downlaods may just be general Linux wich should work on most Linux versions).</p>
<p>Once you have everything installed, create a minikube cluster with docker as the driver, apply your Kubernetes configurations (deployment, service and ingress). Configure your <code>/etc/hosts</code> file and go to your browser and it should work. If you don't know how to set up an ingress, you can watch <a href="https://www.youtube.com/watch?v=80Ew_fsV4rM" rel="nofollow noreferrer">this</a> video for an explanation on what an ingress is, how it works, and an example of how to set it up.</p>
