Kubernetes Setup with Minikube on WSL2 [2024]
Let’s see how to setup Kubernetes on WSL2 using Minikube.
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?
- Ubuntu
- 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.