Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ecs 如何在ecs中持久化数据卷?_Amazon Ecs - Fatal编程技术网

Amazon ecs 如何在ecs中持久化数据卷?

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

我使用具有任务定义的ecs服务创建了一个ecs群集。任务定义包含装载点。当我停止任务时,ecs服务将重新启动它,并为任务定义提供一个新的容器id,从而导致数据丢失。当我们重新启动任务定义时,如何保持数据量?

我建议您使用EFS卷

如果使用Amazon ECS优化的AMI(so Red Hat),您必须在EC2实例上安装包nfs utils来处理该文件系统

然后,您可以创建一个
/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==--