Symptoms & Diagnosis
When Docker Desktop’s Kubernetes engine gets stuck in the “Starting” phase, it usually manifests as a persistent yellow status icon in the footer of the application. The engine fails to transition to the green “Running” state, effectively locking you out of kubectl commands.
Common symptoms include the Docker Desktop dashboard becoming unresponsive or the “Kubernetes” tab showing a perpetual loading spinner. In some cases, the backend vpnkit or hyperkit processes may consume unusually high CPU cycles as they attempt to initialize the cluster nodes.
To diagnose the specific cause, you can check the Docker Desktop logs. On Windows, these are typically located in %LOCALAPPDATA%\Docker, while Mac users can find them under ~/Library/Logs/Docker Desktop. Look for “EOF” errors or “timeout” messages related to the kubelet service.

Troubleshooting Guide
Fixing a hung Kubernetes instance usually requires a tiered approach, starting from simple restarts to clearing internal configuration caches. Use the table below to identify which fix corresponds to your specific situation.
| Fix Level | Action | Best For |
|---|---|---|
| Soft Reset | Restart Docker Desktop | Temporary service glithes. |
| Config Clear | Delete PKI folder | Certificate expiration or corruption. |
| Hard Reset | Reset Kubernetes Cluster | Persistent state errors. |
Step 1: Purge the PKI Directory
One of the most frequent causes for Kubernetes failing to start is a corrupted certificate or an invalid state in the PKI (Public Key Infrastructure) directory. Manually deleting this folder forces Docker to regenerate the necessary security tokens.
For Windows (PowerShell):
rm -Recurse $HOME\.kube
rm -Recurse $HOME\AppData\Local\Docker\pki
For macOS/Linux (Terminal):
rm -rf ~/.kube
rm -rf ~/Library/Group\ Containers/group.com.docker/pki
Step 2: Reset Kubernetes via Dashboard
If clearing the PKI folder does not work, use the built-in reset tool. Navigate to **Settings > Troubleshoot** (the bug icon) and select **Reset Kubernetes Cluster**. Note that this will delete all your local deployments and pods.
Step 3: Increase Resource Limits
Kubernetes requires significant overhead. If your Docker Desktop settings limit the VM to 2GB of RAM, Kubernetes may fail to start because the system components (like etcd and the API server) are being killed by the OOM (Out Of Memory) killer.
Go to **Settings > Resources** and ensure you have assigned at least 4GB of RAM and 2 CPUs to the Docker engine.
Prevention
To prevent Kubernetes from getting stuck in the future, avoid shutting down your host machine while heavy deployments are still initializing. Always allow the cluster to reach a “Running” state before toggling the feature off.
Regularly prune unused images and volumes. A bloated virtual disk can lead to filesystem errors that prevent the Kubernetes database (etcd) from mounting correctly during startup.
Keep Docker Desktop updated to the latest version. Many “stuck starting” bugs are patched in routine maintenance releases, especially those related to WSL2 integration on Windows or Rosetta 2 on Apple Silicon.