Setup minikube on VirtualBox

Recently I have started learning Kubernetes on the main job. I am a newcomer to this topic and I used to learn by practicing. So here I present the first part of my introductional practical guide for setting up and playing with Kubernetes on virtual machine (VM) in VirtualBox.

If you don’t know Kubernetes visit the official page.

My primary goal was to try Kubernetes on VMs the simplest way. I have chosen minimal version of k8s called minikube and used a Virtualbox VM with Ubuntu 16.04. minikube creates a single-node cluster.

There is a problem with minikube on VirtualBox VM: minikube uses VirtualBox hypervisor for virtualization and thus requires VT-X support on host. However VirtualBox doesn’t support VT-X/AMD-v. That could be solved by using vm-driver=none option and Docker on host.

Firstly we need to install Docker following this guide. Install kubectl:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubectl

Make kubectl executable and move it to system path:

sudo chmod +x ./kubectlsudo mv ./kubectl /usr/local/bin/kubectl

Now install minikube:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.24.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/minikube version

Start minikube with vm-driver=none:

sudo minikube start --vm-driver=none

Here is an issue: root privileges are required to use minikube and kubectl (‘minikube start’ command outputs “When using the none driver, the kubectl config and credentials generated will be root owned and will appear in the root home directory”). To fix it run:

export CHANGE_MINIKUBE_NONE_USER=true
sudo -E minikube start --vm-driver=none

Let’s make the fix persistent so it will apply on system bootload:

echo ‘export CHANGE_MINIKUBE_NONE_USER=true’ >> ~/.bashrc

Check that everything works properly:

kubectl cluster-info

That’s all for now.

Enjoy the playing with Kubernetes!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store