How to fix Too many pods in Kubernetes

KubernetesINTERMEDIATEMEDIUMUpdated Sep 15, 2026· 241 views

This error occurs when a node has reached its maximum pod capacity, preventing new pods from being scheduled. The limit is determined by kubelet configuration and available IP addresses.

Quick fix

Fixes Too many pods

# Check allocatable pods
kubectl get node <node-name> -o jsonpath='{.status.allocatable.pods}'

# Count current pods on node
kubectl get pods --all-namespaces --field-selector spec.nodeName=<node-name> | wc -l

# Detailed view
kubectl describe node <node-name> | grep -A5 "Allocated resources"
  1. Check node pod capacity and usage
  2. Add more nodes to distribute pods
  3. Use larger instance types
  4. Increase maxPods in kubelet configuration
kubernetes — error
# Check allocatable pods
kubectl get node <node-name> -o jsonpath='{.status.allocatable.pods}'
# Count current pods on node
kubectl get pods --all-namespaces --field-selector spec.nodeName=<node-name> | wc -l
# Detailed view
kubectl describe node <node-name> | grep -A5 "Allocated resources"
Too many pods

What this error means

The "Too many pods" error indicates that a Kubernetes node has reached its maximum pod capacity. Every node has a hard limit on how many pods it can run, determined by two factors: the kubelet's maxPods configuration (default 110) and the number of available IP addresses. Kubernetes officially recommends not exceeding 110 pods per node to maintain cluster stability. However, cloud providers often have different limits based on instance types and networking configurations. In cloud environments, IP address exhaustion is the most common cause. Each pod typically requires its own IP from the cluster's network range, and smaller instance types support fewer network interfaces and IPs.

Typical symptoms

  • Pod stuck in Pending with "Too many pods" message
  • kubectl describe node shows pods at or near allocatable limit
  • New deployments fail while existing pods run fine
  • Cluster autoscaler triggers but pods still pending
  • HPA unable to scale up deployments

Common causes

  1. Node reached kubelet maxPods limit (default 110)
  2. IP address exhaustion on the node (especially in cloud VPCs)
  3. Small instance type with limited ENI/IP capacity
  4. Many small pods consuming pod slots without using much CPU/memory
  5. DaemonSets and system pods consuming available slots

How to fix "Too many pods"

1Check node pod capacity and usage

View the node's pod limits and current allocation:

bash
# Check allocatable pods
kubectl get node <node-name> -o jsonpath='{.status.allocatable.pods}'

# Count current pods on node
kubectl get pods --all-namespaces --field-selector spec.nodeName=<node-name> | wc -l

# Detailed view
kubectl describe node <node-name> | grep -A5 "Allocated resources"
2Add more nodes to distribute pods

The simplest solution is horizontal scaling—add more nodes:

bash
# GKE
gcloud container clusters resize <cluster> --num-nodes=5

# EKS
aws eks update-nodegroup-config --cluster-name <cluster> \
  --nodegroup-name <ng> --scaling-config desiredSize=5

# AKS
az aks scale --resource-group <rg> --name <cluster> --node-count 5
3Use larger instance types

Larger instances support more pods due to more network interfaces and IPs:

| AWS Instance | Max Pods (VPC CNI) |
|--------------|-------------------|
| t3.micro | 4 |
| t3.medium | 17 |
| m5.large | 29 |
| m5.xlarge | 58 |

Replace node groups with larger instance types for better pod density.

4Increase maxPods in kubelet configuration

If resources allow, increase the kubelet maxPods setting:

bash
# Edit kubelet config (location varies by setup)
sudo vim /var/lib/kubelet/config.yaml

Add or modify:

yaml
maxPods: 150

Then restart kubelet:

bash
sudo systemctl restart kubelet

Note: This doesn't help if IP exhaustion is the actual limit.

5Enable prefix delegation for AWS EKS

For EKS, enable prefix delegation to dramatically increase IP capacity:

bash
kubectl set env daemonset aws-node -n kube-system \
  ENABLE_PREFIX_DELEGATION=true

This assigns /28 IP prefixes instead of individual IPs, increasing capacity from ~29 to 110+ pods on m5.large instances.

Advanced notes

The effective pod limit is the minimum of:
1. kubelet --max-pods setting
2. Available IP addresses (instance ENI * IPs per ENI)
3. Node resources (CPU, memory) divided by pod requests

For AWS EKS with VPC CNI, calculate max pods:

bash
Max Pods = (ENIs * (IPs per ENI - 1)) + 2

With prefix delegation enabled:

bash
Max Pods = (ENIs * ((IPs per ENI - 1) * 16)) + 2

GKE allows up to 256 pods per node with the --max-pods-per-node flag during cluster creation. Azure AKS supports up to 250 pods per node with Azure CNI.

Best practice: Scale horizontally (add nodes) rather than maximizing pod density per node. High pod counts stress the container runtime and can cause performance issues.

Frequently asked questions

What does "Too many pods" mean?
The "Too many pods" error indicates that a Kubernetes node has reached its maximum pod capacity. Every node has a hard limit on how many pods it can run, determined by two factors: the kubelet's maxPods configuration (default 110) and the number of available IP addresses. Kubernetes officially recommends not exceeding 110 pods per node to maintain cluster stability.
How do I fix "Too many pods"?
This error occurs when a node has reached its maximum pod capacity, preventing new pods from being scheduled. The limit is determined by kubelet configuration and available IP addresses.
What causes "Too many pods"?
Node reached kubelet maxPods limit (default 110) IP address exhaustion on the node (especially in cloud VPCs) Small instance type with limited ENI/IP capacity
Is the "Too many pods" error serious?
It is a medium-severity error — more of a blocker than a risk. The steps above resolve it.

Official resources & further reading