Kubernetes挂载Amazon EFS报No such file or directory问题咨询
报错触发原因
- 路径不存在(核心触发原因):EFS文件系统默认根目录为空,你PV配置中
volumeAttributes.path指定的/***/public子目录未提前在EFS文件系统中创建,NFS挂载时无法找到对应路径就会返回该报错 - EFS CSI驱动版本缺陷:日志中提示的
Could not start amazon-efs-mount-watchdog, unrecognized init system "aws-efs-csi-dri"是1.3.8版本以前AWS EFS CSI驱动的已知问题,虽然不会直接导致挂载失败,但可能伴随其他兼容性问题 - 配置匹配错误:PV的
volumeHandle字段填写的EFS ID错误、EFS与K8s集群不在同一VPC、安全组未放开NFS端口(TCP 2049)访问权限时,也可能触发类似报错
解决方案
- 先手动创建EFS内目标路径
找一台和EFS同VPC的云服务器,执行以下操作:
# 安装efs-utils工具 yum install amazon-efs-utils -y # 挂载EFS根目录到本地/mnt路径 mount -t efs fs-xxx:/ /mnt # 按PV配置创建对应子目录,将xxx替换为你实际的路径前缀 mkdir -p /mnt/xxx/public # 按需配置目录权限,避免容器无权限读写 chmod 777 /mnt/xxx/public # 卸载EFS根目录 umount /mnt
- 升级EFS CSI驱动到最新稳定版
将集群部署的AWS EFS CSI驱动升级到1.3.8及以上版本,即可消除watchdog启动失败的警告。 - 校验基础配置正确性
- 确认PV配置中
volumeHandle字段的fs-xxx值和你实际使用的EFS文件系统ID完全一致 - 确认EFS的挂载目标部署在K8s集群节点所在的VPC子网内
- 确认EFS关联的安全组入方向规则放开了K8s节点CIDR段的TCP 2049端口访问权限
- 确认PV中
volumeAttributes.path的路径拼写、层级完全和你在EFS中创建的路径一致
- 验证挂载效果
配置调整完成后,删除原有报错的PV、PVC资源重新创建,再启动关联的工作负载即可正常挂载。
内容的提问来源于stack exchange,提问作者Ahmed Ali
相关产品推荐
相关产品推荐

