Minikube VM Driver: None vs Virtualbox/KVM

1/26/2019

What are the differences in running Minikube with a VM hypervisor (VirtualBox/HVM) vs none?

I am not asking whether or not Minikube can run without a hypervisor. I know that running on '--vm-driver=none' is possible and it runs on the local machine and requires Docker be installed.

I am asking what is the performance differences. There is not a lot of documentation on how '--vm-driver=none' works. I am wondering would running without the VM affect the functionality of Minikube.

-- Mona Wade
kubernetes
minikube
virtual-machine

1 Answer

2/15/2019

This is how I explain it to myself:

  1. driver!=none mode

    In this case minikube provisions a new docker-machine (Docker daemon/Docker host) using any supported providers. For instance:

    a) local provider = your Windows/Mac local host: it frequently uses VirtualBox as a hypervisor, and creates inside it a VM based on boot2docker image (configurable). In this case k8s bootstraper (kubeadm) creates all Kubernetes components inside this isolated VM. In this setup you have usually two docker daemons, your local one for development (if you installed it prior), and one running inside minikube VM.

    b) cloud hosts - not supported by minikube

  2. driver=none mode

    In this mode, your local docker host is re-used.

In case no.1 there will be a performance penalty, because each VM generates some overhead, by running several system processes required by VM itself, in addition to those required by k8s components running inside VM. I think driver-mode=none is similar to "kind" version of k8s boostraper, meant for doing CI/integration tests.

-- Nepomucen
Source: StackOverflow