In this tutorial, I’ll take you through the steps to install minikube on Ubuntu 20.04/18.04 / Debian 10 Linux system. To those new to minikube, let’s start with an introduction before diving to the installation steps.

Minikube is an open source tool that was developed to enable developers and system administrators to run a single cluster of Kubernetes on their local machine. Minikube starts a single node kubernetes cluster locally with small resource utilization. This is ideal for development tests and POC purposes.

For CentOS, check out: Installing Minikube on CentOS 7/8 with KVM

In a nutshell, Minikube packages and configures a Linux VM, then installs Docker and all Kubernetes components into it.

Minikube supports Kubernetes features such as:

  • DNS
  • NodePorts
  • ConfigMaps and Secrets
  • Dashboards
  • Container Runtime: Docker, CRI-O, and containerd
  • Enabling CNI (Container Network Interface)
  • Ingress
  • PersistentVolumes of type hostPath
Hypervisor choice for Minikube: Minikube supports both VirtualBox and KVM hypervisors. This guide will cover both hypervisors.

Step 1: Update system

Run the following commands to update all system packages to the latest release:

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get upgrade

Step 2: Install KVM or VirtualBox Hypervisor

For VirtualBox users, install VirtualBox using:

sudo apt install virtualbox virtualbox-ext-pack

KVM Hypervisor Users

For those interested in using KVM hypervisor, check our guide on how to Install KVM on CentOS 7 / Ubuntu 16.04 / Debian 9 / SLES 12 / Arch Linux.

Then follow How to run Minikube on KVM instead.

Step 3: Download minikube

You need to download the minikube binary. I will put the binary under /usr/local/bin directory since it is inside $PATH.

chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube

Confirm version installed

$ minikube version
minikube version: v1.9.2
commit: 93af9c1e43cab9618e301bc9fa720c63d5efa393

Step 4: Install kubectl on Ubuntu / Debian

We need kubectl which is a command line tool used to deploy and manage applications on Kubernetes:

curl -LO`curl -s`/bin/linux/amd64/kubectl

Make the kubectl binary executable.

chmod +x ./kubectl

Move the binary in to your PATH:

sudo mv ./kubectl /usr/local/bin/kubectl

Check version:

# kubectl version -o json 
  "clientVersion": {
    "major": "1",
    "minor": "10",
    "gitVersion": "v1.10.4",
    "gitCommit": "5ca598b4ba5abb89bb773071ce452e33fb66339d",
    "gitTreeState": "clean",
    "buildDate": "2018-06-06T08:13:03Z",
    "goVersion": "go1.9.3",
    "compiler": "gc",
    "platform": "linux/amd64"

Step 5: Starting minikube

Now that components are installed, you can start minikube. VM image will be downloaded and configure d for Kubernetes single node cluster.

$ minikube start
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Downloading Minikube ISO
150.53 MB / 150.53 MB [============================================] 100.00% 0s
Getting VM IP address...
Moving files into cluster...
Downloading kubeadm v1.10.0
Downloading kubelet v1.10.0
Finished Downloading kubeadm v1.10.0
Finished Downloading kubelet v1.10.0
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
Loading cached images from config file.

Wait for the download and setup to finish then confirm that everything is working fine.

Step 6: Minikube Basic operations

To check cluster status, run:

$ kubectl cluster-info

Kubernetes master is running at
KubeDNS is running at

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Note that Minikube configuration file is located under ~/.minikube/machines/minikube/config.json

To View Config, use:

$ kubectl config view

apiVersion: v1
- cluster:
    certificate-authority: /home/jmutai/.minikube/ca.crt
  name: minikube
- context:
    cluster: minikube
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
- name: minikube
    client-certificate: /home/jmutai/.minikube/client.crt
    client-key: /home/jmutai/.minikube/client.key

To check running nodes:

$ kubectl get nodes

minikube   Ready     master    13m       v1.10.0

Access minikube VM using ssh:

$ minikube ssh

                         _             _            
            _         _ ( )           ( )           
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __  
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

$ sudo su -

To stop a running local kubernetes cluster, run:

$ minikube stop

To delete a local kubernetes cluster, use:

$ minikube delete

Step 7: Enable Kubernetes Dashboard

Kubernete ships with a web dashboard which allows you to manage your cluster without interacting with a command line. The dashboard addon is installed and enabled by default on minikube.

$ minikube addons list

- addon-manager: enabled
- coredns: disabled
- dashboard: enabled
- default-storageclass: enabled
- efk: disabled
- freshpod: disabled
- heapster: disabled
- ingress: disabled
- kube-dns: enabled
- metrics-server: disabled
- registry: disabled
- registry-creds: disabled
- storage-provisioner: enabled

To open directly on your default browser, use:

$ minikube dashboard

To get the URL of the dashboard

$ minikube dashboard --url

Access Kubernetes Dashboard by opening the URL on your favorite browser. For further reading, check:

Kubernetes mastery courses:

More guides on Kubernetes:

How To Schedule Pods on Kubernetes Control plane (Master) Nodes

How To Join new Kubernetes Worker Node to an existing Cluster

Deploy Kubernetes Cluster on CentOS 7 / CentOS 8 With Ansible and Calico CNI

How To Deploy Metrics Server to Kubernetes Cluster

How To Manually Pull Container images used by Kubernetes kubeadm

Install and Use Helm 3 on Kubernetes Cluster

Your support is our everlasting motivation,
that cup of coffee is what keeps us going!

As we continue to grow, we would wish to reach and impact more people who visit and take advantage of the guides we have on our blog. This is a big task for us and we are so far extremely grateful for the kind people who have shown amazing support for our work over the time we have been online.

Thank You for your support as we work to give you the best of guides and articles. Click below to buy us a coffee.


Please enter your comment!
Please enter your name here