Kubernetes Setup with Minikube on WSL2 [2024]

Let’s see how to setup Kubernetes on WSL2 using Minikube.

Gagandeep Singh
2 min readJan 17, 2023

I wanted to learn Kubernetes but installing it seemed more difficult than learning it, especially in WSL2. So, let’s see an updated and easy way to set it up.

The great thing about this approach is that we’ll not install Docker Desktop, instead, we’ll install Docker inside WSL2 which won’t interfere with other WSL2 Images.

What you’ll need?

  1. Ubuntu
  2. Good Internet Speed

Let’s install Ubuntu from Microsoft Store (I’m assuming you’ve already installed WSL2 on your system).

After installing, set up Ubuntu by creating a username and password in the first-time setup.

Now, follow these steps:

Enable systemd in WSL2.

$ sudo nano /etc/wsl.conf

Add the following lines in it and save.

[boot]
systemd=true

Shutdown wsl2 and start it again.

$ wsl --shutdown
$ wsl

Installing Docker

$ sudo apt update && sudo apt upgrade -y
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update -y
sudo apt-get install -y docker-ce
sudo usermod -aG docker $USER && newgrp docker

Install Minikube

# Download the latest Minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

# Make it executable
chmod +x ./minikube

# Move it to your user's executable PATH
sudo mv ./minikube /usr/local/bin/

#Set the driver version to Docker
minikube config set driver docker

Install Kubectl

# Download the latest Kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# Make it executable
chmod +x ./kubectl

# Move it to your user's executable PATH
sudo mv ./kubectl /usr/local/bin/

Running Minikube

$ minikube start

It will take a couple of minutes depending on your internet connection.

If it shows you an error, it could be possible to your WSL2 is out of date as systemd was introduced in Sept-2022.

To fix that

# In powershell type wsl.exe — update and try running minikube start after restarting wsl

Once your minikube starts working, type:

$ kubectl config use-context minikube
# Start minikube again to enable kubectl in it
$ minikube start
$ kubectl get pods -A

You’ll see something.

You have successfully installed and configured Kubernetes on the local system using WSL2.

Let me know in the comments if you face any issues.

--

--

Gagandeep Singh

Data Scientist | GENAI | NLP | Chatbot | Docker | Kubernetes