Kubernetes is starting ..... forever error on windows 10
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
Introduction
When a local Kubernetes environment on Windows 10 stays stuck at “Kubernetes is starting...” forever, the problem is usually not Kubernetes itself in isolation. It is normally one of the layers underneath it: virtualization, container runtime, networking, resource allocation, or a corrupted local cluster state. The fastest path to a fix is to identify which layer is failing instead of retrying the same startup sequence blindly.
Start by Identifying Which Local Stack You Are Using
On Windows 10, “Kubernetes is starting” might come from several local setups, most commonly Docker Desktop or Minikube. The troubleshooting steps overlap, but the logs and reset commands differ.
A few quick checks help you identify the active toolchain.
If kubectl cannot reach a cluster at all, the issue may be earlier than Kubernetes startup itself. If the context points to Docker Desktop or Minikube, that narrows the environment immediately.
Check Virtualization First
Local Kubernetes on Windows 10 depends on a working virtualization backend such as Hyper-V or WSL 2 depending on the chosen stack. If that layer is misconfigured, Kubernetes will often appear to “start forever” because the control-plane VM or Linux environment never becomes healthy.
Confirm that virtualization is enabled in BIOS and that the Windows features your stack expects are available. For Hyper-V based setups, PowerShell can help verify the feature state.
If your toolchain is WSL 2 based, verify that WSL itself is healthy.
A broken virtualization layer will make every higher-level Kubernetes action look stalled.
Check Resources and Runtime Health
A local cluster may hang during startup when it does not have enough CPU, RAM, or disk space. Docker Desktop and similar tools need enough headroom to start the control plane, system pods, and your own workloads.
Check the basic runtime first:
Then verify disk space and whether the runtime is already under pressure from other containers or images. A startup spinner that never ends is often a resource issue wearing a vague UI message.
If you use Minikube, check its status and logs directly.
Those logs usually tell you much more than the generic Windows UI status text.
Verify Networking and Context
Another common failure mode is that Kubernetes started partially, but your client is pointing at the wrong context or a broken API endpoint.
If the API server is unreachable, look at the configured cluster address and the runtime logs. If the API is reachable but system pods are stuck, the cluster has started enough to narrow the issue to a later stage.
That distinction matters because “forever starting” can describe very different real states.
Reset the Local Cluster State When Needed
Once you have verified the backend and logs, a cluster reset is often faster than repeated partial fixes if the local state is clearly corrupted.
For Docker Desktop based setups, disabling and re-enabling Kubernetes in the settings may be enough. For Minikube, a full delete and recreate cycle is often cleaner.
Use this step after checking logs, not before. Resetting blindly can hide the underlying cause and force you to repeat the same failure later.
Keep the Fix Scoped to the Actual Stack
A lot of online advice mixes Hyper-V, VirtualBox, Minikube, Docker Desktop, and WSL 2 instructions together. That makes troubleshooting slower because the steps for one stack may be irrelevant or actively confusing for another.
A better sequence is:
- identify the runtime stack
- verify virtualization health
- verify container runtime health
- inspect cluster-specific logs
- reset only if the state is clearly broken
That order keeps the problem bounded.
Common Pitfalls
- Treating “Kubernetes is starting...” as though it were one specific Kubernetes bug instead of a symptom from a lower layer.
- Skipping virtualization checks and going straight to random cluster resets.
- Ignoring the actual cluster context and troubleshooting the wrong local environment.
- Mixing Docker Desktop, Minikube, Hyper-V, and WSL guidance without first identifying the active stack.
- Recreating the cluster repeatedly without reading the runtime or cluster logs that explain why startup failed.
Summary
- A local Kubernetes startup hang on Windows 10 is usually rooted in virtualization, runtime health, networking, or corrupted local cluster state.
- First identify whether you are using Docker Desktop, Minikube, or another local stack.
- Check virtualization and runtime health before blaming Kubernetes itself.
- Use
kubectl, runtime commands, and cluster logs to narrow the failing layer. - Reset the cluster only after you have enough evidence that the local state is the actual problem.
Related reading
- Kubernetes Javascript Client Library works on local but not on GKE
- kubernetes jenkins docker command not found
- Kubernetes Job Cleanup
- Kubernetes Job Pods Become In Unknown State
- Kubernetes kustomize command giving error when we specify base manifest files in kustomization.yaml file under resources section
- Kubernetes Let's Encrypt cert-manager Error secret not found
- Kubernetes kubectl apply does not update pods when using latest tag
- Kubernetes kubectl bash completion with alias

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.