[英]Using AWS Storages Services (EBS or EFS or S3) as Volumes or Mount Binds with Stanalone Docker Containers not ECS?
我有一个自我管理的AWS集群,我正在该集群上运行Docker容器。 (目前,ECS和EKS不在我的范围内,尽管将来可能会……但是我需要关注当前的需求)。
我必须通过附加AWS efs / ebs / s3fs存储(针对用例)来增加一些容器的持久性。 AWS已通过冗长而冗长的博客解决了该用例 ,该博客将ECS纳入了图片。 就像我所说的要求很简单,这篇文章似乎做了很多事情,例如cloudFormaton等。
如果有人可以简化此步骤,请提供我需要遵循的基本步骤,我们将不胜感激。
1)我安装了ebs / efs / s3fs驱动程序-
docker plugin install --grant-all-permissions rexray/ebs
对于efs和s3fs也是如此。 s3fs安装遇到麻烦。
来自守护程序的错误响应:拨号unix /run/docker/plugins/b0b9c534158e73cb07011350887501fe5fd071585af540c2264de760f8e2c0d9/rexray.sock:连接:无此类文件或目录
除非有人愿意自愿解决这个问题,但这暂时不是我的问题。
令我感到震惊的是,下一步是创建卷或在运行时将它们作为卷或安装绑定直接绑定到容器(是受支持的?还是只是卷),下一步是什么?
这是基于ec2的ecs服务的步骤(因为到目前为止,fargate实例不支持docker卷):
更新您的实例角色以包括以下权限 :
ec2:AttachVolume ec2:CreateVolume ec2:CreateSnapshot ec2:CreateTags ec2:DeleteVolume ec2:DeleteSnapshot ec2:DescribeAvailabilityZones ec2:DescribeInstances ec2:DescribeVolumes ec2:DescribeVolumeAttribute ec2:DescribeVolumeStatus ec2:DescribeSnapshots ec2:CopySnapshot ec2:DescribeSnapshotAttribute ec2:DetachVolume ec2:ModifySnapshotAttribute ec2:ModifyVolumeAttribute ec2:DescribeTags
这应该适用于策略中的所有资源。 注意,如果您不想使用autoProvision,则可以忽略createVolume和deleteVolume权限。
在实例上安装rexray(您已经完成了此操作)
如果您不使用自动配置,请置备您的卷,并确保有一个Name
标签与要在服务定义中使用的卷的Name
匹配。 在下面的示例中,我们将此值设置为rexray-vol
。
更新您的任务定义,以包括要作为Docker容器安装的卷的必要值。 这是一个例子:
"volumes": [{ "name": "rexray-vol", "dockerVolumeConfiguration": { "autoprovision": true, "scope": "shared", "driver": "rexray/ebs", "driverOpts": { "volumetype": "gp2", "size": "5" } } }]
更新任务定义的容器定义以引用您时髦的ebs卷:
"mountPoints": [ { "containerPath": "/var/lib/mysql", "sourceVolume": "rexray-vol" } ],
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.