Does Minikube (or Kubernetes) need CPU-virtualisation instructions to orchestrate Docker containers?

halfer asked:

I am looking to learn Kubernetes, specifically from this resource. I only want to run Docker containers, rather than full-fat VMs. It says that I need any of these as a base from which to work:

  • Docker Desktop
  • kind
  • Minikube

I have plumped for Minikube, as I’m on Linux, and it’s pretty easy to install. I’m using these instructions. The second doc link says:

To check if virtualization is supported on Linux, run the following command and verify that the output is non-empty:

grep -E --color 'vmx|svm' /proc/cpuinfo

This does not produce any output for me, since my standard development environment runs inside a VirtualBox container. I don’t plan to change this – Docker, Docker Compose and Docker Swarm run very well here.

It later says:

Install a Hypervisor

If you do not already have a hypervisor installed, install one of these now:

  • KVM, which also uses QEMU

  • VirtualBox

This makes it seem that hypervisor CPU support is necessary, but I do not see why that would be.

However it does go onto say:

Minikube also supports a --driver=none option that runs the Kubernetes components on the host and not in a VM. Using this driver requires Docker and a Linux environment but not a hypervisor.

This appears to be something of an addendum, and is given much less prominence that the suggestion that virtualisation instructions are a requirement. Were the documentation authors just "covering all bases", or will I bump into a roadblock later on by continuing despite not having the required CPU?

My answer:

Minikube itself runs in a virtual machine, the point being to keep it contained and separated from your host environment. You should create a new virtual machine for Minikube, not try to run it inside an existing VM.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.