Amazon EKS — Node Issues

1 minute read

Node Issues

Nodes can go NotReady, run out of resources, or fail to join the cluster.


Node NotReady

# Check node status
$ kubectl get nodes
NAME              STATUS     ROLES    AGE
ip-10-0-1-100     Ready      <none>   5d
ip-10-0-2-200     NotReady   <none>   5d    ← Problem!

# Get details
$ kubectl describe node ip-10-0-2-200
# Look at Conditions section:
Conditions:
  Type        Status  Reason
  Ready       False   KubeletNotReady
  MemoryPressure  True   ...

Common Node Issues

Issue Cause Fix
NotReady Kubelet crashed, node OOM Check EC2 instance, restart kubelet
MemoryPressure Node memory > 90% Add nodes or reduce pod memory
DiskPressure Node disk > 85% Clean images, increase disk
PIDPressure Too many processes Check for fork bombs, increase max PIDs
NetworkUnavailable CNI plugin issue Restart aws-node DaemonSet

Node Won’t Join Cluster

# Check if node is registered
$ kubectl get nodes

# On the node (if you can SSH):
$ journalctl -u kubelet -f

# Common causes:
# 1. Security group blocks kubelet → API server communication
# 2. aws-auth ConfigMap missing node role
# 3. Node AMI incompatible with cluster version

# Check aws-auth
$ kubectl get configmap aws-auth -n kube-system -o yaml

Node Resource Debugging

# Check allocated resources
$ kubectl describe node <name> | grep -A 5 "Allocated resources"
  Resource           Requests     Limits
  --------           --------     ------
  cpu                1800m (90%)  3600m (180%)
  memory             3Gi (85%)   6Gi (170%)

# Find the heaviest pods
$ kubectl top pods --all-namespaces --sort-by=cpu | head -10

Common Mistakes

Mistake Impact
Not monitoring node conditions Surprise outages
Over-committing resources OOM kills under load
Running on a single AZ AZ failure takes down cluster

What’s Next?

Network problems: Networking Issues.