AWS Elastic Beanstalk EFS 挂载错误:未知文件系统类型“efs”

问题描述 投票:0回答:3

我尝试使用 Dockerrun.aws.json 的任务定义将我的 EFS 安装到多 Docker Elastic Beanstalk 环境。另外,我已将 EFS 的安全组配置为接受来自 EC2(EB 环境)安全组的 NFS 流量。

但是,我面临着错误:

ECS 任务因以下原因停止:来自守护程序的错误响应:创建 ecs-awseb-SeyahatciBlog-env-k3k5grsrma-2-wordpress-88eff0a5fc88f9ae7500: VolumeDriver.Create:安装卷失败:安装:未知文件系统 输入“efs”。

我正在使用 AWS 管理控制台上传此 Dockerrun.aws.json 文件:

{
  "AWSEBDockerrunVersion": 2,
  "authentication": {
    "bucket": "seyahatci-docker",
    "key": "index.docker.io/.dockercfg"
  },
  "volumes": [
    {
      "name": "wordpress",
      "efsVolumeConfiguration": {
        "fileSystemId": "fs-d9689882",
        "rootDirectory": "/blog-web-app/wordpress",
        "transitEncryption": "ENABLED"
      }
    },
    {
      "name": "mysql-data",
      "efsVolumeConfiguration": {
        "fileSystemId": "fs-d9689882",
        "rootDirectory": "/blog-db/mysql-data",
        "transitEncryption": "ENABLED"
      }
    }
  ],
  "containerDefinitions": [
    {
      "name": "blog-web-app",
      "image": "bireysel/seyehatci-blog-web-app",
      "memory": 256,
      "essential": false,
      "portMappings": [
        {"hostPort": 80, "containerPort": 80}
      ],
      "links": ["blog-db"],
      "mountPoints": [
        {
          "sourceVolume": "wordpress",
          "containerPath": "/var/www/html"
        }
      ]
    },
    {
      "name": "blog-db",
      "image": "mysql:5.7",
      "hostname": "blog-db",
      "memory": 256,
      "essential": true,
      "mountPoints": [
        {
          "sourceVolume": "mysql-data",
          "containerPath": "/var/lib/mysql"
        }
      ]
    }
  ]
}

AWS 配置屏幕截图:

  1. EC2 安全组(由 EB 自动创建)
  2. EFS 安全组
  3. EFS 网络
amazon-web-services docker amazon-elastic-beanstalk amazon-efs ecs-taskdefinition
3个回答
20
投票

我的场景:

  • 使用 Amazon Linux 2 AMI 设置一些 EC2。
  • 尝试设置 EFS

尝试安装 EFS 驱动器时遇到同样的错误。

似乎包

WAS NOT
包含在 Amazon Linux 2 AMI 中,尽管文档指定应包含它。

amzn-efs-utils 软件包预安装在 Amazon Linux 和 Amazon Linux 2 Amazon 系统映像 (AMI) 上。

https://docs.aws.amazon.com/efs/latest/ug/overview-amazon-efs-utils.html

运行

which amzn-efs-utils
返回:未安装 amzn-efs-utils。

$ which amzn-efs-utils
/usr/bin/which: no amzn-efs-utils in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin)

修复

安装

amzn-efs-utils

sudo yum install amazon-efs-utils

4
投票

搜索了整个网络后,我没有遇到任何解决此问题的方法。我联系了 AWS 支持。他们告诉我,问题在于 Elastic Beanstalk 创建的 EC2 实例上缺少“amazon-efs-utils”扩展,然后我通过在 .ebextensions 文件夹中创建一个名为 efs.config 的文件来修复该错误:

.ebextensions/efs.config

packages:
  yum:
    amazon-efs-utils: 1.2

最后,我在上传之前压缩了 .ebextensions 文件夹和 Dockerrun.aws.json 文件,问题已解决。


0
投票
即使在安装软件包后,哪个命令也显示“

no amazon-efs-utils in”。但这个命令显示安装状态 rpm -qa |正确地 grep amazon-efs-utils 。现在 mount 命令运行正常

© www.soinside.com 2019 - 2024. All rights reserved.