首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装时aws efs连接超时

安装时aws efs连接超时
EN

Stack Overflow用户
提问于 2016-07-28 09:24:44
回答 7查看 26.7K关注 0票数 35

我正在按照教程在AWS EC2实例上挂载efs,但是当Iam执行挂载命令时

代码语言:javascript
复制
sudo mount -t nfs4 -o vers=4.1 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).[EFS-ID].efs.[region].amazonaws.com:/ efs

每次我都要把连接超时。

代码语言:javascript
复制
mount.nfs4: Connection timed out

这里可能有什么问题?

提前感谢!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-05-11 22:40:38

我发现这里接受的答案是不正确和不安全的,而包上面的答案非常接近--只是您不需要EC2 (挂载目标)安全组中的NFS入站。您只需要为您的EC2分配一个安全组(即使没有规则),这样您的EFS安全组就可以仅限于该安全组.为了安全起见!下面是我发现的工作:

  • 为EC2实例创建一个新的安全组。将其命名为EFS Target,并保留所有规则为空
  • 为您的EFS安装创建一个新的安全组。将其命名为EFS Mount,并在本例中为NFS添加inbound规则。将此规则的源设置为上面创建的EFS Target安全组。这限制了EFS只能连接到分配了EC2安全组的EFS Mount实例(参见下面)。如果您不担心这一点,您可以从Source下拉列表中选择"Any“,它将同样工作,而不需要额外的安全级别
  • 转到EC2控制台,并将EFS Target组添加到您的EC2实例中,假设您要添加额外的安全性
  • 转到EFS控制台,选择EFS并选择Manage
    • 对于每个EFS挂载目标(可用性区域),您需要添加EFS Mount安全组并删除VPC默认组(如果还没有)

  • 现在,AWS文档中的挂载命令应该可以工作了。

我不喜欢他们在这里混合本地语言,因为EC2是一个挂载目标,但是EFS对于每个可用区域都有单独的挂载目标。这使得他们的文档非常混乱,但是按照上面的步骤,我可以安全地在Ubuntu服务器上挂载EFS。

票数 83
EN

Stack Overflow用户

发布于 2016-08-07 06:40:02

将带有NFS和端口2049的类型添加到运行EC2实例和EFS的安全组的入站。对我来说很管用。

票数 26
EN

Stack Overflow用户

发布于 2019-07-22 07:40:25

这里有一个不同的答案,因为我面临着一个非常相似的错误,没有一个答案是合适的。

我试图像下面这样挂载NFS (在我的示例中,EKS是代表我这样做的,但我在worker节点中手动测试了相同的命令,结果相同):

代码语言:javascript
复制
[root@host ~]# mount -t nfs fs-abc1234.efs.us-east-1.amazonaws.com:/persistentvolumes /mnt/test

产出为:mount.nfs: Connection timed out

当我只是尝试使用相同的命令,但使用/作为路径时:

代码语言:javascript
复制
[root@host ~]# mount -t nfs fs-abc1234.efs.us-east-1.amazonaws.com:/ /mnt/test

就像一种魅力!

我真的不明白一个可能的错误路径或丢失路径如何会导致time out类型的错误,但这是唯一能解决问题的东西,所有的网络配置都保持不变。

当我使用EKS/Kubernetes时,我使用挂载/来工作,然后使用subPath更改容器配置中的卷挂载点。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38632222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档