GKE/Kubernetes: Pod unschedulable — 0/3 nodes are available: 3 Insufficient cpu
The scheduler found no node with enough free CPU/memory for the pod's resource requests.
0/3 nodes are available: 3 Insufficient cpuInsufficient cpu GKE pod pendingpod didn't trigger scale-up: it wouldn't fit if a new node is addedFailedScheduling 0/ nodes are availableInsufficient memory pod unschedulable Meaning
Requests (not limits) decide scheduling. Lower the pod's requests, add nodes (enable cluster autoscaler), or use a bigger machine type. In GKE Autopilot requests are what you pay for, so right-size them. Autoscaler may log NotTriggerScaleUp reasons.
Common causes
- Requests larger than any node can provide
- Cluster at capacity without autoscaler
- Autoscaler blocked by quota or max nodes
- Node taints/affinity excluding all nodes
- DaemonSets consuming capacity
⚡ Quick fix
kubectl describe pod PODand read Events- Reduce
resources.requestsor add nodes - Enable autoscaling and check quotas
Detailed fix by platform
kubectl
kubectl describe pod POD | tail -20;kubectl top nodes
How to diagnose
- Events — Insufficient cpu/memory?
- Capacity — Node allocatable?
- Autoscaler — Enabled, quota ok?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- API has not been used in project before or it is disabled Google Cloud: 403 SERVICE_DISABLED — Cloud Resource Manager API has not been used in project 123456 before or it is disabled. Enable it by visiting
- Error 403: API has not been used in project (Terraform) Terraform: Error: Error creating Network: googleapi: Error 403: Compute Engine API has not been used in project 123 before or it is disabled
- FailedScheduling Kubernetes: Pod stuck in Pending — FailedScheduling: 0/3 nodes are available
Most viewed in Google Cloud / Firebase
- Missing or insufficient permissions Firestore: FirebaseError: [code=permission-denied]: Missing or insufficient permissions
- Container failed to start Cloud Run: The user-provided container failed to start and listen on the port defined provided by the PORT=8080 environment variable
- Could not load the default credentials Google Cloud: Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started
Other ways to find it
Where this error sits
Origin: Platform & cloud. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 4 Nov 2026