Amazon EKS — Storage Issues

1 minute read

Storage Issues

PVCs stuck in Pending, mount failures, and CSI driver problems.


PVC Not Binding

$ kubectl get pvc
NAME      STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS
my-data   Pending                                       gp3

$ kubectl describe pvc my-data
# Look at Events:
Events:
  waiting for a volume to be created, ...

Common PVC Issues

Symptom Cause Fix
PVC Pending No StorageClass Create or set default StorageClass
PVC Pending CSI driver not installed Install EBS/EFS CSI driver
PVC Pending (EBS) Pod and PVC in different AZs Use volumeBindingMode: WaitForFirstConsumer
Mount error Wrong fsType Match fsType to volume format
Permission denied Pod user can’t write Set fsGroup in securityContext

CSI Driver Debugging

# Check EBS CSI driver pods
$ kubectl get pods -n kube-system -l app=ebs-csi-controller
$ kubectl logs -n kube-system -l app=ebs-csi-controller -c ebs-plugin

# Check EFS CSI driver pods
$ kubectl get pods -n kube-system -l app=efs-csi-controller

AZ Mismatch (Most Common EBS Issue)

Problem:
  Pod scheduled on node in us-east-1a
  EBS volume created in us-east-1b
  → Volume can't attach across AZs!

Solution:
  Use WaitForFirstConsumer binding mode:
  
  storageClassName: gp3
  volumeBindingMode: WaitForFirstConsumer
  
  This delays volume creation until a pod is
  scheduled, so the volume is created in the
  same AZ as the pod.

Common Mistakes

Mistake Impact
Using Immediate binding with EBS AZ mismatch errors
Missing IRSA for CSI driver Can’t create volumes
Not setting fsGroup Permission denied on writes

What’s Next?

Quick reference: Common Errors.