ECS Fargate任务启动失败,出现ResourceInitializationError mount.nfs4 Connection timed out错误

77次阅读
没有评论

问题描述

当使用Amazon ECS Fargate启动任务时,任务启动失败,并显示以下错误信息:

ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: command failed with 32: failed to execute command to invoke EFS utils: mount.nfs4:Connection timed out

Fargate任务是一个需要挂载EFS作为持久存储的Docker镜像。为什么连接超时?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

这个错误的根本原因是ECS服务的网络访问安全组没有权限访问EFS。解决方法是在安全组中添加一个入站规则,类型为NFS,具体步骤如下:
1. 登录到AWS控制台。
2. 打开ECS服务的网络访问安全组。
3. 在安全组的入站规则中,添加一个新规则。
4. 选择协议类型为NFS
5. 配置其他规则参数,如源IP、端口范围等。
6. 保存规则并应用更改。
以下是一个示例的安全组入站规则配置:

Type: NFS
Protocol: TCP
Port Range: 2049
Source: 0.0.0.0/0

在上面的示例中,我们添加了一个入站规则,允许来自任何IP地址的TCP流量访问端口2049(NFS默认端口)。
请注意,根据实际需求,你可能需要更改源IP和端口范围等规则参数。

方案2

如果方案1无法解决问题,请参考以下方案。
另一种可能的解决方法是检查EFS的配置和网络设置。确保EFS文件系统和Fargate任务在同一个VPC中,并且网络配置正确。你可以按照以下步骤进行检查:
1. 登录到AWS控制台。
2. 打开EFS服务的控制台页面。
3. 确认EFS文件系统和Fargate任务在同一个VPC中。
4. 检查VPC的网络配置,确保网络设置正确。
5. 如果需要,可以尝试重新创建EFS文件系统和Fargate任务,并确保它们在同一个VPC中。
如果以上方法仍然无法解决问题,请参考AWS文档或联系AWS支持获取进一步的帮助和指导。

正文完