Amazon ecs 如何在ecs中持久化数据卷?
我使用具有任务定义的ecs服务创建了一个ecs群集。任务定义包含装载点。当我停止任务时,ecs服务将重新启动它,并为任务定义提供一个新的容器id,从而导致数据丢失。当我们重新启动任务定义时,如何保持数据量?我建议您使用EFS卷 如果使用Amazon ECS优化的AMI(so Red Hat),您必须在EC2实例上安装包nfs utils来处理该文件系统 然后,您可以创建一个Amazon ecs 如何在ecs中持久化数据卷?,amazon-ecs,Amazon Ecs,我使用具有任务定义的ecs服务创建了一个ecs群集。任务定义包含装载点。当我停止任务时,ecs服务将重新启动它,并为任务定义提供一个新的容器id,从而导致数据丢失。当我们重新启动任务定义时,如何保持数据量?我建议您使用EFS卷 如果使用Amazon ECS优化的AMI(so Red Hat),您必须在EC2实例上安装包nfs utils来处理该文件系统 然后,您可以创建一个/mnt/efs目录,并在实例/etc/fstab文件中创建一个条目: <YOUR EFS CLUSTER DOMAI
/mnt/efs
目录,并在实例/etc/fstab
文件中创建一个条目:
<YOUR EFS CLUSTER DOMAIN NAME>:/ /mnt/efs nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,fsc 0 0
它将在实例创建时为您执行所有这些步骤
如果使用限制性安全组,您还需要添加对NFS网络端口的访问权限(如果我提醒您注意,请参见2049)。请注意,使用REX-Ray(或其他替代方案),这意味着现在这是Docker支持的标准机制,无论您是要装载EBS还是EFS
另见:
在将Docker卷驱动程序支持添加到Amazon ECS之前,您必须使用自定义工具(如bash脚本、Lambda函数或Docker卷的手动配置)手动管理存储卷。现在,您可以通过使用流行的插件(如REX Ray或Portworx)充分利用Docker插件生态系统
注意:
AmazonEFS的价格几乎是AmazonEBS的10倍,但更便宜的AmazonEBS一次只能被一个AmazonEC2实例访问。这可能是群集或分布式应用程序中的问题。然而,AmazonEBS可以提供比AmazonEFS更好的性能。AmazonEFS作为共享网络存储的能力在AmazonEBS上占有一席之地
Content-Type: multipart/mixed; boundary="==BOUNDARY=="
MIME-Version: 1.0
--==BOUNDARY==
MIME-Version: 1.0
Content-Type: text/text/x-shellscript; charset="us-ascii"
#!/bin/bash
yum install -y nfs-utils
mkdir "/mnt/efs"
echo "<YOUR EFS CLUSTER DOMAIN NAME>:/ /mnt/efs nfs4
nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,fsc 0 0" >> /etc/fstab
mount -a
--==BOUNDARY==--