<p><strong>Scenario:</strong></p>

<p>I need to build a web-app, from which I can run/sop/delete/etc. containers in a cluster. So I installed <code>Kubernetes</code> and tested the API from the console. Everything seems working and looks fine. </p>

<p>Following the Docs, they write about Docker, but do I need it necessarily?  </p>

<p>I mean I had to disable <code>Hyper-V</code> to make <code>Minikube</code> work, and after a reboot, Docker (which usually starts at startup) says that "something went wrong.. bla bla" .. but I can create deployments and <code>proxys</code> on <code>Minikube</code>.<br>
This is somehow confusing. </p>

<p>Can someone explain this please for dummies?</p>

<p>Technically, you need a <em>container runtime</em> which respects <a href="https://kubernetes.io/blog/2016/12/container-runtime-interface-cri-in-kubernetes/" rel="noreferrer">CRI (Container Runtime Interface)</a>.</p>
<p><a href="https://i.stack.imgur.com/Z7aPG.png" rel="noreferrer"><img src="https://i.stack.imgur.com/Z7aPG.png" alt="https://d3vv6lp55qjaqc.cloudfront.net/items/0I3X2U0S0W3r1D1z2O0Q/Image%202016-12-19%20at%2017.13.16.png" /></a></p>
<p>That is why you have <a href="https://github.com/kubernetes-incubator/cri-o" rel="noreferrer">CRI-O</a>, which provides an integration path between OCI conformant runtimes and the kubelet.<br />
See &quot;<a href="https://thenewstack.io/cri-o-project-run-containers-without-docker-reaches-1-0/" rel="noreferrer">CRI-O, the Project to Run Containers without Docker, Reaches 1.0</a>&quot; by <strong><a href="https://twitter.com/HallSd" rel="noreferrer">Susan Hall</a></strong>.</p>
<blockquote>
<p>The project “opens the door for plugging <a href="http://programmableinfrastructure.com/components/container-runtime/" rel="noreferrer">alternative container runtimes</a> in the <a href="https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/" rel="noreferrer">kubelet</a> more easily, instead of relying on the default docker runtime.</p>
<p>Those new runtimes may include virtual machines-based ones, such as <strong>runv</strong> and <strong>Clear Containers</strong>, or standard Linux containers runtimes like <code>rkt</code>,” <a href="http://red.ht/2uJGuQo" rel="noreferrer">Red Hat</a> senior engineer <a href="https://twitter.com/runc0m" rel="noreferrer">Antonio Murdaca</a> wrote on the <a href="https://www.projectatomic.io/blog/2017/02/crio-runtimes/" rel="noreferrer">Project Atomic blog</a>.</p>
</blockquote>
<hr />
<p>But in your case, your issue is to make Minikube work with HyperV: see &quot;<a href="https://medium.com/@JockDaRock/minikube-on-windows-10-with-hyper-v-6ef0f4dc158c" rel="noreferrer">Minikube on Windows 10 with Hyper-V</a>&quot; from <strong><a href="https://twitter.com/JockDaRock" rel="noreferrer">Jock Reed</a></strong>.<br />
The trick is to create a new (External) Virtual network switch, named &quot;Primary Virtual Switch&quot;, and to start Minikube with:</p>
<pre><code>minikube start --vm-driver hyperv --hyperv-virtual-switch &quot;Primary Virtual Switch&quot;
</code></pre>
