Amazon EKS — Common Errors Reference

1 minute read

Common EKS Errors Reference

Quick lookup for the most common EKS error messages and their solutions.


Pod Errors

Error Cause Fix
CrashLoopBackOff App crashes on start Check kubectl logs --previous
ImagePullBackOff Can’t pull container image Check image name, ECR auth, node IAM
ErrImagePull Image doesn’t exist Verify image:tag in registry
OOMKilled Container exceeded memory limit Increase resources.limits.memory
Evicted Node under resource pressure Check node conditions, add capacity
CreateContainerConfigError Missing ConfigMap or Secret Verify referenced resources exist
RunContainerError Container runtime failure Check security context, capabilities

Node Errors

Error Cause Fix
NotReady Kubelet or networking issue Check instance health, kubelet logs
MemoryPressure Node memory exhausted Evict pods or add nodes
DiskPressure Node disk full Clean images: docker system prune
Taint NoSchedule Node manually tainted Remove taint or add toleration

Networking Errors

Error Cause Fix
dial tcp: lookup ... no such host DNS resolution failure Check CoreDNS pods
connection refused Target port not open Verify service ports and endpoints
connection timed out Security group/NP blocking Check SGs and NetworkPolicies
pod CIDR exhausted Too many pods for subnet Use custom networking or larger subnet

Storage Errors

Error Cause Fix
PVC Pending No matching PV or StorageClass Check SC exists and CSI driver running
FailedAttachVolume EBS in wrong AZ Use WaitForFirstConsumer
FailedMount Mount target issue Check EFS mount targets in subnet
permission denied Wrong UID/GID Set securityContext.fsGroup

IAM / Auth Errors

Error Cause Fix
Unauthorized User not in aws-auth Add IAM role to aws-auth ConfigMap
AccessDenied Missing IAM permission Check IRSA policy
ExpiredTokenException AWS credentials expired Refresh kubeconfig: aws eks update-kubeconfig
could not get token AWS CLI not configured Run aws configure

Quick Debug Commands

# Overall cluster health
$ kubectl get nodes
$ kubectl get pods -A | grep -v Running

# Events (newest first)
$ kubectl get events --sort-by='.lastTimestamp' -A | tail -20

# Resource usage
$ kubectl top nodes
$ kubectl top pods -A --sort-by=cpu | head -10

# API server connectivity
$ kubectl cluster-info

# Check all system components
$ kubectl get pods -n kube-system

What’s Next?

Practice: Troubleshooting Exercises.