ECS 没有足够的空闲数据块用于 docker 镜像。如何配置足够的卷/存储?



我用terraform管理我们的ECS任务,它一直很好,但最近,当任务试图从ECR获取图像时,我遇到了这个错误:

CannotPullContainerError: failed to register layer: devmapper: Thin Pool has 4143 free data blocks which is less than minimum required 4449 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior

我有点困惑在这里更新什么。我们的ECS服务使用EC2启动类型,但我认为我对这里发生的事情有一个根本性的误解。阅读https://docs.aws.amazon.com/AmazonECS/latest/developerguide/CannotCreateContainerError.html,似乎是因为体积太小,但AWS帮助页面建议docker prune。这让我很困惑,因为我的理解是ECS任务每次都可以访问完整的卷作为一个新的开始——为什么卷上会有陈旧的映像/容器?或者页面只是建议在您的ECS任务可能获取过多图像的情况下,您应该删除陈旧的图像。

除此之外,我不知道该如何进行。在aws_ecs_task_definition中增加ephemeral_storage会有帮助吗?还是我需要管理我自己的卷,这个卷连接到与aws_ecs_service相关的aws_autoscaling_group绑定在一起的aws_launch_template实例上?

只需将此块添加到我的aws_launch_template

resource "aws_launch_template" "instance" {
...
block_device_mappings {
device_name = "/dev/xvdcz"
ebs {
volume_size           = 50
delete_on_termination = true
}
}
}

相关内容

  • 没有找到相关文章

最新更新