首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们能在AWS ECS码头集装箱上安装EFS吗?

我们能在AWS ECS码头集装箱上安装EFS吗?
EN

Stack Overflow用户
提问于 2018-02-26 11:00:59
回答 3查看 10.3K关注 0票数 8

我有一个ECS实例,我的码头容器正在运行。我想在ECS上运行的码头容器上安装EFS。那怎么可能呢?

我能够在ECS实例上挂载EFS,但不能安装在运行在ECS上的docker容器上。

EFS具有直接连接功能&可以在2049端口从码头进行远程连接。

-t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 X.X:/ /efs

错误是:- mount.nfs4:不允许的操作

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-26 11:15:58

它应该是任务定义的一部分,您需要在任务定义中添加卷,然后在源卷选项中引用它,下面是AWS的教程。

https://aws.amazon.com/blogs/compute/using-amazon-efs-to-persist-data-from-amazon-ecs-containers/

代码语言:javascript
复制
  "volumes": [
    {
      "name": "efs",
      "host": {
        "sourcePath": "/mnt/efs/mysql"
      }
    }
  ]
票数 4
EN

Stack Overflow用户

发布于 2018-10-05 18:55:58

最新情况;2020年1月17日-预览ECS/EFS支持

在2020年1月17日AWS 宣布了ECS对EFS的支持预览。需要注意的是,这是当前的预览版本;请参阅有关配置文档中这意味着什么的信息。

与其定义卷及其所有连接参数,不如简单地定义新的EFSVolumeConfiguration对象。

代码语言:javascript
复制
"EFSVolumeConfiguration": {
  "fileSystemId": "fs-xxxxxx",
  "rootDirectory": "/mnt/volume/path"
}

原始答案

到2018年8月,有了码头卷支持,您现在可以使用将NFS共享直接装入ECS容器中。了。

目前可用的文档并不详细说明如何通过docker卷与ECS一起使用EFS,但这是可能的。

配置停靠器卷

首先,在任务配置中包括一个类似于以下内容的volumes部分:

代码语言:javascript
复制
"volumes": [
   {
     "name": "efs",
     "host": null,
     "dockerVolumeConfiguration": {
       "autoprovision": null,
       "labels": null,
       "scope": "task",
       "driver": "local",
       "driverOpts": {
         "type": "nfs",
         "device": ":/",
         "o": "addr=<fs-id>.efs.us-east-1.amazonaws.com,nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"
       }
     }
   }
]

确保您在addr选项中更新了o参数,以匹配您的o文件系统的DNS名称。

然后,将此卷包含在容器定义中的挂载中。有关语法的更多信息,请参见码头容积

代码语言:javascript
复制
"containerDefinitions": [
    {
        "mountPoints": [
            {
                "sourceVolume": "efs",
                "containerPath": "/path/to/mount_volume",
                "readOnly": false
            }
        ]
    }
]

用于NFS连接的配置选项是AWS为安装EFS文件系统编写时推荐的配置选项。

票数 20
EN

Stack Overflow用户

发布于 2022-10-07 16:33:54

方法1:当您想要将EFS挂载到EC2实例并使所有容器使用它时,请使用。运行下面的命令将EFS挂载到EC2实例。

代码语言:javascript
复制
sudo mount -t efs fs-0ad7c287c2f7c27c2 /mnt/efs

然后在任务定义中将其引用为sourcePath,以便容器可以使用efs挂载路径作为可写层。

代码语言:javascript
复制
"volumes": [
 {
  "name": "efs",
  "host": {
    "sourcePath": "/mnt/efs/mysql"
   }
 }
]

方法2:当在ECS上启用自动缩放时,最好将EFS卷直接附加到ECS任务/容器。在任务定义中,如下图所示,容器将在产卵时直接挂载EFS。

代码语言:javascript
复制
"volumes": [
    {
        "name": "Tiger-Test",
        "efsVolumeConfiguration": {
        "fileSystemId": "fs-0ad7c287c2f7c27c2"
        }
    }
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48986933

复制
相关文章

相似问题

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