EKS 1.21集群Pod因未绑定EFS类型PVC处于Pending状态排查求助
AWS EKS 1.21中EFS PVC未绑定导致Pod Pending的排查步骤
1. 先排查PVC本身状态与事件
- 执行
kubectl describe pvc <你的PVC名称>,重点查看:- PVC的
Status字段是否为Pending Events模块的详细报错,比如是否提示无可用PV、存储类不匹配等信息- 确认PVC指定的
storageClassName是否对应集群中已配置的EFS存储类
- PVC的
2. 检查PV配置(静态PV场景)
如果是手动创建的PV而非动态供给:
- 执行
kubectl describe pv <你的PV名称>,验证:- PV的
Status是否为Available(若已被其他PVC绑定则显示Bound) AccessModes是否与PVC的需求完全匹配(比如PVC要求ReadWriteMany,PV需对应一致)Capacity是否满足PVC的存储请求- PV的
spec.csi.volumeHandle里的EFS文件系统ID是否正确
- PV的
3. 验证EFS文件系统的可用性与网络连通性
- 登录EKS集群的任意节点(可通过
kubectl debug node/<节点名称> -it --image=busybox进入调试环境),尝试手动挂载EFS:
若挂载失败,排查以下网络问题:mount -t efs <EFS文件系统ID>:/ /tmp/test-efs-mount- EFS的安全组是否允许EKS节点安全组的2049端口(NFS协议端口)入站访问
- EKS节点的安全组是否允许2049端口出站访问
- EFS文件系统与EKS集群是否处于同一个VPC,或已通过VPC peering建立连通
- 登录AWS控制台,确认EFS文件系统状态为
Available,无删除或故障状态
4. 检查EFS CSI驱动状态(动态PV场景)
如果使用EFS CSI驱动动态创建PV:
- 执行
kubectl get pods -n kube-system | grep efs,确认EFS CSI控制器和节点插件的Pod均处于Running状态 - 查看控制器Pod的日志,排查创建PV失败的原因:
kubectl logs <efs-csi-controller-pod名称> -n kube-system -c efs-plugin - 确认EFS CSI驱动版本与Kubernetes 1.21兼容(建议使用v1.3.0及以上版本),且已正确安装
5. 核对Pod的挂载配置
- 查看Pod的YAML配置,确认
volumes字段中引用的PVC名称拼写正确,volumeMounts的挂载路径和PVC关联无误 - 检查Pod的调度约束(如
nodeSelector、affinity),确保调度到的节点能访问EFS文件系统(比如节点在EFS的可用区内)
6. 验证IAM权限配置
若使用IRSA(IAM Roles for Service Accounts):
- 确认EFS CSI控制器的ServiceAccount(通常在
kube-system命名空间下)已关联具备以下权限的IAM角色:elasticfilesystem:DescribeFileSystemselasticfilesystem:CreateAccessPointelasticfilesystem:DeleteAccessPoint
- 若使用节点IAM角色,确认节点角色包含访问EFS的相关权限,未被IAM策略限制
内容的提问来源于stack exchange,提问作者nichoio
相关产品推荐
相关产品推荐

