03-Install-minikube-on-Windows
KubernetesMinikubeKubectlDevOpsLocal Development Beginner 5 min read

03-Install-minikube-on-Windows

Learn what Minikube is and how to install it on Windows, Mac, and Linux to run a local Kubernetes cluster for development and learning.

Prerequisites (All Platforms)

Before installing Minikube, make sure your machine meets these requirements:

  • CPU: 2 cores or more
  • RAM: 2 GB free memory or more (4 GB recommended)
  • Disk: 20 GB free disk space
  • Internet: Required only for the initial download
  • Virtualization: Must be enabled in BIOS/UEFI (most modern machines have this on by default)
  • Docker Desktop (recommended driver): Install from docker.com
Check Virtualization First
On Windows, open Task Manager → Performance → CPU and check if Virtualization: Enabled appears. On Linux run grep -c -E 'vmx|svm' /proc/cpuinfo — any number above 0 means it’s supported.

Installing on Windows

Step 1 — Install Docker Desktop

Minikube’s recommended driver on Windows is Docker. Download and install Docker Desktop from the official site, then start it and wait for the whale icon to appear in your system tray showing it’s running.

# Verify Docker is running
docker version

Step 2 — Install kubectl

kubectl is the Kubernetes CLI. Install it using one of these methods:

Option A — Using winget (Windows Package Manager):

winget install -e --id Kubernetes.kubectl

Option B — Using Chocolatey:

choco install kubernetes-cli

Option C — Manual download:

# Download the latest kubectl binary
curl.exe -LO "https://dl.k8s.io/release/v1.29.0/bin/windows/amd64/kubectl.exe"

# Move it to a folder in your PATH
mkdir C:\kubectl
move kubectl.exe C:\kubectl\

Then add C:\kubectl to your system PATH:

  1. Search “Environment Variables” in Start Menu
  2. Click “Environment Variables”
  3. Under System Variables, find Path → Edit → New
  4. Add C:\kubectl and click OK

Verify kubectl:

kubectl version --client
Client Version: v1.29.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

Step 3 — Install Minikube

Option A — Using winget:

winget install -e --id Kubernetes.minikube

Option B — Using Chocolatey:

choco install minikube

Option C — Manual installer:

Download the Minikube Windows installer from the official releases page and run the .exe file.

Verify Minikube:

minikube version
minikube version: v1.32.0
commit: 8220a6eb95f0a4d75f7f2d7b14cef975f050512

Step 4 — Start Your Cluster

minikube start --driver=docker

You’ll see output like this:

😄  minikube v1.32.0 on Windows 11
✨  Using the docker driver based on user configuration
📌  Using Docker Desktop driver with root privileges
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
🔥  Creating docker container (CPUs=2, Memory=4096MB) ...
🐳  Preparing Kubernetes v1.28.3 on Docker 24.0.7 ...
🔗  Configuring bridge CNI (Container Networking Interface) ...
🔎  Verifying Kubernetes components...
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster
First Start Takes Longer
The first minikube start downloads the base Kubernetes image (~500 MB). Subsequent starts are much faster since the image is cached locally.

Step 5 — Verify Everything Works

# Check cluster status
minikube status

# Check nodes
kubectl get nodes

# Open the Kubernetes Dashboard (optional)
minikube dashboard

Expected output:

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   2m    v1.28.3

Essential Minikube Commands

Once your cluster is running, here are the commands you’ll use daily:

# Start cluster
minikube start

# Stop cluster (saves state)
minikube stop

# Delete cluster completely
minikube delete

# Check cluster status
minikube status

# Open Kubernetes Dashboard in browser
minikube dashboard

# Get cluster IP
minikube ip

# SSH into the Minikube node
minikube ssh

# View Minikube logs
minikube logs

# Pause cluster (free up CPU/RAM without deleting)
minikube pause

# Resume paused cluster
minikube unpause

Useful Startup Flags

# Start with more resources
minikube start --cpus=4 --memory=8192

# Start with a specific Kubernetes version
minikube start --kubernetes-version=v1.27.0

# Start with a specific driver
minikube start --driver=virtualbox

# Start with multiple nodes (simulate real cluster)
minikube start --nodes=3

Enable Useful Add-ons

Minikube comes with built-in add-ons you can enable with one command:

# See all available add-ons
minikube addons list

# Enable the Kubernetes Dashboard
minikube addons enable dashboard
minikube addons enable metrics-server

# Enable Ingress controller (for routing HTTP traffic)
minikube addons enable ingress

# Enable a private image registry
minikube addons enable registry
Always Enable Metrics Server
Enable metrics-server from the start — it powers kubectl top pods and kubectl top nodes, which show CPU and memory usage. You’ll use these constantly when debugging.

Configuring kubectl for Minikube

When you run minikube start, it automatically configures kubectl to point to your Minikube cluster by updating ~/.kube/config. You don’t need to do anything extra.

# Verify kubectl is pointing to minikube
kubectl config current-context
minikube
# If you have multiple clusters, switch to minikube explicitly
kubectl config use-context minikube

# View all configured clusters
kubectl config get-contexts
CURRENT   NAME       CLUSTER    AUTHINFO   NAMESPACE
*         minikube   minikube   minikube   default

Troubleshooting Common Issues

Issue 1 — minikube start fails with “docker not found”

# Make sure Docker is running
docker ps

# If docker command not found, restart your terminal or run
newgrp docker   # Linux only

Issue 2 — Not enough resources

# Reduce memory requirement
minikube start --memory=2048 --cpus=2

Issue 3 — Cluster stuck in “Starting” state

# Delete and recreate
minikube delete
minikube start

Issue 4 — kubectl commands return “connection refused”

# Check if minikube is actually running
minikube status

# If stopped, start it
minikube start

# Re-configure kubectl context
minikube update-context

Issue 5 — Windows Hyper-V conflict with Docker

# Disable Hyper-V if using VirtualBox as driver
bcdedit /set hypervisorlaunchtype off
# Restart your computer after this
Always Run minikube delete Before Switching Drivers
If you want to switch from one driver (e.g., VirtualBox) to another (e.g., Docker), always run minikube delete first. Changing the driver without deleting the old cluster causes cryptic errors.