使用Helm在Kubernetes安装Jenkins挂载EFS PV时Pod无法进入Running状态
问题说明
- 使用Helm在Kubernetes集群部署Jenkins时,配置EFS类型的持久卷(PV)与持久卷声明(PVC)后,Pod始终无法进入Running状态;移除PV、PVC配置后Pod可正常启动,Jenkins UI可正常访问。
- Pod事件中记录的挂载失败报错如下:
Warning FailedMount 0s kubelet, fargate-ip-3-209-31-152.ap-south-1.compute.internal MountVolume.SetUp failed for volume "jenkins-efs-pv" : rpc error: code = Internal desc = Could not mount "EFSID:/" at "/var/lib/kubelet/pods/4fff4b36-08d2-4747-a9ec-cdddc2ac723d/volumes/kubernetes.io~csi/jenkins-efs-pv/mount": mount failed: exit status 32 Mounting command: mount Mounting arguments: -t efs -o tls fs-0dee1bbe67a139006:/ /var/lib/kubelet/pods/4fff4b36-08d2-4747-a9ec-cdddc2ac723d/volumes/kubernetes.io~csi/jenkins-efs-pv/mount Output: Could not start amazon-efs-mount-watchdog, unrecognized init system "bash" b'mount.nfs4: Connection reset by peer'
故障原因
从节点标识可判断当前Pod调度在AWS EKS Fargate节点上,报错分为两部分:
Could not start amazon-efs-mount-watchdog, unrecognized init system "bash"为非阻断告警:Fargate运行环境无传统systemd/sysvinit等init系统,efs-utils工具默认尝试启动的挂载守护进程无法在bash环境下拉起,该问题不会直接导致挂载失败。mount.nfs4: Connection reset by peer为核心故障:EFS存储与Fargate Pod之间的NFS通信链路不通,挂载请求被重置。
修复步骤
按优先级依次排查调整:
- 检查EFS网络配置
- 确认EFS已在Fargate Pod部署的所有可用区创建挂载目标,跨可用区无路由会直接导致挂载失败
- 确认EFS挂载目标关联的安全组放通入站规则:源地址为Fargate Pod绑定的安全组,协议TCP,端口2049(NFS服务端口)
- 校验EFS CSI驱动兼容性
- 确认集群中部署的AWS EFS CSI驱动版本不低于1.3.2,旧版本驱动对Fargate无init系统的环境兼容不足,会放大watchdog启动异常的影响
- 在PV的
mountOptions字段中仅保留tls、必要时加iam参数,不要添加依赖系统服务的额外挂载参数
- 校验权限配置
- 如果EFS开启了IAM访问控制,确认Fargate Pod关联的执行角色已授予对应EFS卷的
elasticfilesystem:ClientMount、elasticfilesystem:ClientWrite权限 - 检查EFS文件系统策略、VPC网络ACL没有拦截对应网段的2049端口出站/入站流量
- 如果EFS开启了IAM访问控制,确认Fargate Pod关联的执行角色已授予对应EFS卷的
- 配置调整完成后,删除原有异常的Jenkins Pod等待重新调度,验证Pod是否能正常进入Running状态、存储是否可正常读写。
内容的提问来源于stack exchange,提问作者Sowndarya
相关产品推荐
相关产品推荐

