"minikube start" Fails: The Greatest Hits

Q

"minikube start" hangs forever, what now?

A

This happens way too often.

Usually it's one of these issues:First thing to try is the nuclear option:bashminikube deleteminikube start --driver=docker --memory=4096Works half the time, saves you an hour of debugging.

Still fucked? Check if virtualization is enabled in your BIOS:```bash# Linux

  • should return a number > 0egrep -c '(vmx|svm)' /proc/cpuinfo# macOS
  • should show VMX supportsysctl -a | grep machdep.cpu.features```Still stuck?

Try different drivers:bashminikube start --driver=virtualbox # Slow but reliableminikube start --driver=hyperv # Windows onlySometimes the first driver just won't work, even if it worked yesterday. Driver bullshit is common.

Q

Error: "This computer doesn't have VT-X/AMD-v enabled"

A

Time to wrestle with your BIOS.

Reboot and hit F2, F12, Delete, or whatever key gets you into BIOS setup (it's different for every manufacturer, naturally).Look for virtualization settings:

  • Intel machines: "Intel VT-x", "Virtualization Technology", or "VMX"
  • AMD machines: "AMD-V", "SVM Mode", or similar

Enable it, save changes, reboot.

Some corporate laptops have this locked down

  • if you can't change BIOS settings, try the Docker driver instead:bashminikube start --driver=dockerThe Docker driver doesn't need hardware virtualization, though it has its own set of quirks.
Q

"Exiting due to GUEST_PROVISION: Failed to start host"

A

Usually means your driver is broken:bash# Check what drivers you haveminikube config get driver# Try Docker (most reliable)minikube deleteminikube start --driver=docker# If Docker fails, try VirtualBoxminikube start --driver=virtualbox

Q

macOS: "hyperkit crashed" or "xhyve crashed"

A

HyperKit on macOS is flaky as hell:bash# Switch to VirtualBox (slower but stable)brew install virtualboxminikube deleteminikube start --driver=virtualbox# Or use Docker (fastest)minikube start --driver=docker

Q

Windows: "Hyper-V is not available" but I know it's installed

A

Two common issues:

  1. Docker Desktop conflict
    • Stop Docker Desktop before starting Minikube
  2. Windows features
    • Ensure "Hyper-V" AND "Windows Hypervisor Platform" are enabledpowershell# Run as AdminEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Fixing Minikube Networking (When Everything Goes to Shit)

Kubernetes Networking Diagram

Minikube networking will ruin your day. You deploy a service, gets a ClusterIP, looks good in kubectl get svc, but you can't reach it. This is where people give up and go back to Docker Compose.

The minikube tunnel Problem

The number one networking headache is LoadBalancer services stuck in "pending" state. Your service manifest looks perfect, kubectl shows everything running, but EXTERNAL-IP just says <pending> forever.

The problem: Minikube doesn't have a real load balancer. Unlike cloud providers that automatically provision AWS ELB or GCP Load Balancer, Minikube needs manual intervention to make LoadBalancer services work.

The solution: minikube tunnel - but it's not as simple as the docs make it seem.

## Start tunnel (requires sudo on Linux/macOS)
sudo minikube tunnel

## Keep this running in separate terminal
## Your LoadBalancer services will get 10.x.x.x IPs

Reality check: minikube tunnel is flaky. It crashes every time my laptop sleeps, leaving me staring at services that worked 5 minutes ago. Spent half a demo trying to figure out why my API was unreachable before realizing tunnel had died with some "route already exists" error.

Better approach for development:

## Use NodePort instead of LoadBalancer
kubectl patch svc myservice -p '{\"spec\":{\"type\":\"NodePort\"}}'

## Get the URL directly
minikube service myservice --url
## Or use the service command docs: https://minikube.sigs.k8s.io/docs/commands/service/

DNS Resolution Hell

Another classic: pods can't resolve service names. You're inside a pod, try to curl my-service, and get Name or service not known.

Check DNS is working:

## Test from inside a pod
kubectl run test-pod --image=busybox --rm -it -- nslookup kubernetes.default

Check the DNS debugging guide if this fails.

If that fails, your CoreDNS is broken:

## Check CoreDNS pods
kubectl get pods -n kube-system | grep coredns

## Restart CoreDNS
kubectl delete pods -n kube-system -l k8s-app=kube-dns

CoreDNS breaks often, especially after restarts or driver changes.

Port Forward: The Nuclear Option

When all else fails, kubectl port-forward usually works:

## Forward pod port to localhost
kubectl port-forward pod/mypod 8080:80

## Forward service port (more reliable)
kubectl port-forward svc/myservice 8080:80

This bypasses all the Kubernetes networking magic and just creates a direct tunnel. Not elegant, but it works at 3 AM when you need to demo something. See the port forwarding documentation for more details.

The Docker Driver Networking Gotcha

Using --driver=docker has a special networking quirk: your pods run inside Docker containers, which run inside a Docker network, which may or may not be reachable from your host. The Docker driver documentation explains this in more detail.

Symptoms:

  • kubectl port-forward works
  • minikube service URLs don't work
  • Can't reach NodePort services from browser

Fix:

## Check what IP Minikube is using
minikube ip

## If it returns 127.0.0.1, you're in Docker mode
## Services are available at different ports on localhost
minikube service myservice --url

IPv6 and DNS Shenanigans

If you're on a network with IPv6 (common in corporate environments), Minikube can get confused about which IP stack to use. This manifests as:

  • Services unreachable intermittently
  • DNS timeouts
  • minikube tunnel connecting but traffic not flowing

Quick fix:

## Force IPv4 for DNS
minikube start --extra-config=kubelet.resolv-conf=/etc/resolv.conf

Network Policy Confusion

If you've enabled the Network Policy addon and things suddenly stop working, it's probably blocking your traffic.

## Check if NetworkPolicy is causing issues
kubectl get networkpolicies --all-namespaces

## Disable the addon
minikube addons disable networkpolicy

Network policies in Minikube are great for learning but terrible for debugging other issues. Disable them first, then re-enable once everything else works.

The Ultimate Networking Debug Sequence

When networking is completely broken and you can't figure out why:

## 1. Check basic connectivity
minikube status

## 2. Verify cluster IP ranges
kubectl cluster-info dump | grep -i cidr

## 3. Test pod-to-pod networking
kubectl run test1 --image=busybox --rm -it -- ping 8.8.8.8
kubectl run test2 --image=busybox --rm -it -- nslookup kubernetes.default

## 4. Nuclear option - restart networking
minikube ssh 'sudo systemctl restart kubelet'

The Minikube networking documentation is decent but doesn't cover these real-world failure modes. Most engineers learn this stuff the hard way - by debugging at inconvenient times.

Remember: in production Kubernetes, networking "just works" because cloud providers handle the complexity. Minikube exposes all the ugly details that normally stay hidden.

ImagePullBackOff and Resource Issues

Q

My pods are stuck in "ImagePullBackOff" - what now?

A

This is usually one of three problems:

Private registry without credentials:

## Check the exact error
kubectl describe pod <podname>

## If it mentions authentication, create registry secret
kubectl create secret docker-registry regcred \
  --docker-server=your-registry.com \
  --docker-username=your-user \
  --docker-password=your-pass

## Add to your pod spec
imagePullSecrets:
- name: regcred

Image doesn't exist:

## Test if image exists
docker pull your-image:tag

## Common mistakes:
## - Wrong tag (using "latest" but pushed "v1.0")
## - Typo in image name
## - Image exists in different registry

Local images not available in cluster:

## Use Minikube's Docker daemon
eval $(minikube docker-env)
docker build -t myapp:latest .

## Or load image into cluster
minikube image load myapp:latest
Q

Pods getting "OOMKilled" constantly

A

Your pods are running out of memory. Check what's actually happening:

## See resource usage
kubectl top pods

## Check limits in your deployment
kubectl describe deployment myapp

## See events
kubectl get events --sort-by=.metadata.creationTimestamp

Quick fixes:

## Increase pod memory limit
kubectl patch deployment myapp -p '{"spec":{"template":{"spec":{"containers":[{"name":"myapp","resources":{"limits":{"memory":"512Mi"}}}]}}}}'

## Or increase Minikube memory
minikube delete
minikube start --memory=8192
Q

"No space left on device" errors

A

Minikube's VM is full. Found out during a demo when kubectl apply started throwing no space left on device in front of everyone. Usually it's:

  • Docker images from all the testing you've been doing
  • Application logs that just keep growing
  • PersistentVolumes you forgot you created

Clean house:

## SSH into Minikube
minikube ssh

## Check disk usage
df -h

## Clean Docker images
docker system prune -a -f

## Check large files
sudo find / -type f -size +100M 2>/dev/null

Permanent fix:

## Restart with more disk space
minikube delete
minikube start --disk-size=50GB
Q

Error: "Too many open files"

A

Linux file descriptor limits are too low:

## Check current limits
ulimit -n

## Increase temporarily
ulimit -n 4096

## Permanent fix - add to ~/.bashrc
echo "ulimit -n 4096" >> ~/.bashrc
Q

Pods stuck in "Pending" forever

A

Scheduler can't find a node with enough resources:

## Check node resources
kubectl describe node minikube

## Look for resource pressure
kubectl get nodes -o wide

## Check pod requirements
kubectl describe pod <podname>

Common causes:

  • Requesting more memory than node has
  • Node has resource pressure (disk/memory)
  • Affinity rules blocking scheduling

Quick fix:

## Reduce resource requests
kubectl patch deployment myapp -p '{"spec":{"template":{"spec":{"containers":[{"name":"myapp","resources":{"requests":{"memory":"128Mi","cpu":"100m"}}}]}}}}'

Common Minikube Fuckups and How to Fix Them

Problem

Solution/Description

minikube start hangs forever

Virtualization disabled in BIOS. Reboot, hit F2/F12/Delete, find Intel VT-x or AMD-V, enable it. Takes 10 minutes if you find the setting, hours if you don't.

"Exiting due to GUEST_PROVISION"

Driver is broken. Try minikube start --driver=docker instead. Works most of the time.

LoadBalancer stuck "pending"

Forgot to run minikube tunnel. Start it in another terminal. It'll crash after your laptop sleeps.

ImagePullBackOff

Image doesn't exist or need registry auth. Check kubectl describe pod for the error. Private registries need kubectl create secret docker-registry.

Pods stuck "Pending"

Not enough CPU/memory. Give Minikube more resources or reduce pod requests. Default 2GB sucks for real work.

OOMKilled

Pod hit memory limit. Increase it or fix your memory leak.

"No space left on device"

Docker images filled disk. Run docker system prune -a and lose all cached layers. Costs rebuild time later.

DNS doesn't work

CoreDNS is broken. Delete CoreDNS pods with kubectl delete pods -n kube-system -l k8s-app=kube-dns and let them restart.

minikube tunnel crashes

Networking state corrupted. Kill tunnel, clear route table, restart tunnel. On Mac: sudo route flush.

"Too many open files"

ulimit too low. ulimit -n 4096 fixes temporarily. For permanent fix, edit /etc/security/limits.conf.

Related Tools & Recommendations

tool
Similar content

Helm: Simplify Kubernetes Deployments & Avoid YAML Chaos

Package manager for Kubernetes that saves you from copy-pasting deployment configs like a savage. Helm charts beat maintaining separate YAML files for every dam

Helm
/tool/helm/overview
100%
tool
Similar content

Rancher Desktop: The Free Docker Desktop Alternative That Works

Discover why Rancher Desktop is a powerful, free alternative to Docker Desktop. Learn its features, installation process, and solutions for common issues on mac

Rancher Desktop
/tool/rancher-desktop/overview
90%
integration
Similar content

Jenkins Docker Kubernetes CI/CD: Deploy Without Breaking Production

The Real Guide to CI/CD That Actually Works

Jenkins
/integration/jenkins-docker-kubernetes/enterprise-ci-cd-pipeline
89%
tool
Similar content

containerd - The Container Runtime That Actually Just Works

The boring container runtime that Kubernetes uses instead of Docker (and you probably don't need to care about it)

containerd
/tool/containerd/overview
80%
tool
Similar content

Debugging Istio Production Issues: The 3AM Survival Guide

When traffic disappears and your service mesh is the prime suspect

Istio
/tool/istio/debugging-production-issues
78%
tool
Similar content

Minikube Overview: Local Kubernetes for Developers & Beginners

Run Kubernetes on your laptop without the cloud bill

Minikube
/tool/minikube/overview
73%
tool
Similar content

Debug Kubernetes Issues: The 3AM Production Survival Guide

When your pods are crashing, services aren't accessible, and your pager won't stop buzzing - here's how to actually fix it

Kubernetes
/tool/kubernetes/debugging-kubernetes-issues
71%
troubleshoot
Similar content

Kubernetes Crisis Management: Fix Your Down Cluster Fast

How to fix Kubernetes disasters when everything's on fire and your phone won't stop ringing.

Kubernetes
/troubleshoot/kubernetes-production-crisis-management/production-crisis-management
66%
tool
Similar content

ArgoCD Production Troubleshooting: Debugging & Fixing Deployments

The real-world guide to debugging ArgoCD when your deployments are on fire and your pager won't stop buzzing

Argo CD
/tool/argocd/production-troubleshooting
65%
troubleshoot
Similar content

Kubernetes CrashLoopBackOff: Debug & Fix Pod Restart Issues

Your pod is fucked and everyone knows it - time to fix this shit

Kubernetes
/troubleshoot/kubernetes-pod-crashloopbackoff/crashloopbackoff-debugging
63%
tool
Similar content

Python 3.13 Troubleshooting & Debugging: Fix Segfaults & Errors

Real solutions to Python 3.13 problems that will ruin your day

Python 3.13 (CPython)
/tool/python-3.13/troubleshooting-debugging-guide
63%
troubleshoot
Similar content

Fix Kubernetes CrashLoopBackOff Exit Code 1 Application Errors

Troubleshoot and fix Kubernetes CrashLoopBackOff with Exit Code 1 errors. Learn why your app works locally but fails in Kubernetes and discover effective debugg

Kubernetes
/troubleshoot/kubernetes-crashloopbackoff-exit-code-1/exit-code-1-application-errors
62%
tool
Similar content

Fix gRPC Production Errors - The 3AM Debugging Guide

Fix critical gRPC production errors: 'connection refused', 'DEADLINE_EXCEEDED', and slow calls. This guide provides debugging strategies and monitoring solution

gRPC
/tool/grpc/production-troubleshooting
60%
tool
Similar content

Jsonnet Overview: Stop Copy-Pasting YAML Like an Animal

Because managing 50 microservice configs by hand will make you lose your mind

Jsonnet
/tool/jsonnet/overview
58%
tool
Similar content

cert-manager: Stop Certificate Expiry Paging in Kubernetes

Because manually managing SSL certificates is a special kind of hell

cert-manager
/tool/cert-manager/overview
58%
tool
Similar content

Kubernetes Cluster Autoscaler: Automatic Node Scaling Guide

When it works, it saves your ass. When it doesn't, you're manually adding nodes at 3am. Automatically adds nodes when you're desperate, kills them when they're

Cluster Autoscaler
/tool/cluster-autoscaler/overview
57%
troubleshoot
Similar content

Debug Kubernetes AI GPU Failures: Pods Stuck Pending & OOM

Debugging workflows for when Kubernetes decides your AI workload doesn't deserve those GPUs. Based on 3am production incidents where everything was on fire.

Kubernetes
/troubleshoot/kubernetes-ai-workload-deployment-issues/ai-workload-gpu-resource-failures
57%
tool
Similar content

Google Cloud Run: Deploy Containers, Skip Kubernetes Hell

Skip the Kubernetes hell and deploy containers that actually work.

Google Cloud Run
/tool/google-cloud-run/overview
53%
tool
Similar content

LangChain Production Deployment Guide: What Actually Breaks

Learn how to deploy LangChain applications to production, covering common pitfalls, infrastructure, monitoring, security, API key management, and troubleshootin

LangChain
/tool/langchain/production-deployment-guide
50%
integration
Similar content

GitOps Integration: Docker, Kubernetes, Argo CD, Prometheus Setup

How to Wire Together the Modern DevOps Stack Without Losing Your Sanity

/integration/docker-kubernetes-argocd-prometheus/gitops-workflow-integration
50%

Recommendations combine user behavior, content similarity, research intelligence, and SEO optimization