Amazon EKS — Storage Issues
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.