【问题标题】:Does every aws batch job spin up a new docker container是否每个 aws 批处理作业都会启动一个新的 docker 容器
【发布时间】:2018-09-09 03:42:20
【问题描述】:

每次我提交批处理作业时,会创建一个新的 Docker 容器还是重复使用旧容器。

如果每次都创建一个新的 Docker 容器,当作业完成时容器会发生什么。

在 AWS ECS 中,ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION 变量设置从任务停止到移除 Docker 容器的等待时间(默认为 3 小时)

如果所有这些容器都在三个小时后才被清理干净,如果我提交大量作业,ECS容器实例会不会很容易被填满?

出现此错误 CannotCreateContainerError: API error (500): devmapper when running a batch job。如果我在作业结束时清理 docker 容器文件有帮助吗?

【问题讨论】:

    标签: amazon-web-services docker aws-ecs aws-batch


    【解决方案1】:

    每次我提交批处理作业时,会创建一个新的 Docker 容器还是重复使用旧容器。

    是的。 Batch 上运行的每个作业都将作为一个新的 ECS 任务运行,这意味着每个作业都有一个新容器。

    如果所有这些容器都在三个小时后才被清理,那么如果我提交大量作业,ECS容器实例会不会很容易被填满?

    这一切都取决于您的作业工作负载、作业长度、磁盘使用情况等。对于大量消耗磁盘的短作业,这是完全可能的。

    CannotCreateContainerError: API error (500): devmapper

    Documentation for this error 指出了一些可能的解决方案,但是您已经指出的第一个在这种情况下可能无济于事。

    ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION 在 ECS 上默认为 3h,在批处理集群上似乎默认设置为 2m - 您可以检查一个批处理实例上的 EC2 用户数据,以验证它是否在您的集群上以这种方式设置。根据集群的年龄,这些设置可能会发生变化。 Batch 不会在不创建全新集群的情况下自动更新到最新的 ECS Optimized AMI,因此如果它也不更改设置,我也不会感到惊讶。

    如果您的清理持续时间设置当前设置得较低,you might try creating a custom AMI 会提供比正常 docker 体积更大的值。默认情况下,ECS 优化的 AMI 附带 8GB 根驱动器和 22GB 用于 docker 的卷。

    【讨论】:

    • 谢谢。 ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION 确实被 Batch 设置为 2m。不确定是什么原因导致未使用的容器堆积。但是在 ECS 中重新创建 EC2 实例后,容器会被正确清理
    • 根本原因是 ECS 容器代理存在于 docker 容器中,并且它生成的所有日志都填满了空间。我将 ECS 任务定义配置为将 docker 日志发送到 cloudwatch。但问题是 ECS 容器代理本身不是由任务定义配置的。知道如何更改 ECS 容器代理的日志驱动程序吗?
    • 这很有趣.. 如果您查看本指南,您似乎可以更改容器代理以使用 CloudWatch Logs 进行日志记录:docs.aws.amazon.com/AmazonECS/latest/developerguide/… 据我所知,您可以通过两种方式实现上述要求- 自定义 AMI,或者如果您使用非托管计算环境,则通过 EC2 Userdata。
    • 看起来我需要提供 {cluster} 和 {container_instance_id} 来设置 CloudWatch Logs 代理,这对于自定义 AMI 是不可能的。至于用户数据,我使用的是批处理,它是一个托管计算环境,所以它也不可行?
    • 另外,不只是容器代理日志占用空间,存储在 /var/log/ecs/ecs-agent.log 中,容器代理作为 docker 容器也会创建一个巨大的日志文件,在这种情况下,它存储在 /var/lib/docker/containers//-json.log.
    猜你喜欢
    • 2019-12-03
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多