如果启用了awslogs,则将ecs任务部署到ec2时内存不足问题

时间:2020-02-14 21:02:51

标签: amazon-ecs amazon-cloudwatchlogs

我有一个ecs任务定义,通常可以正常部署到ec2实例。我正在尝试在任务的一项服务上启用awslogs,以使容器日志同步到cloudwatch。

我遵循了amazon's awslogs instructions,最后得到的任务定义包括:

"containerDefinitions": [
  {
    "logConfiguration": {
      "logDriver": "awslogs",
      "secretOptions": null,
      "options": {
        "awslogs-group": "server-test",
        "awslogs-region": "us-east-1",
        "awslogs-create-group": "true",
        "awslogs-stream-prefix": "gunicorn"
      }
    }
    ...
  }
],
...
"requiresAttributes": [
  {
    "targetId": null,
    "targetType": null,
    "value": null,
    "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
  },
...
    ...

除了这些更改之外,任务定义与我一直使用的相同,没有问题。当我尝试在群集上运行此任务定义(通过ecs-cli compose service up)时,它挂起并超时,并显示以下消息:

service main was unable to place a task because no container instance met all of its requirements. The closest matching container-instance <...> has insufficient memory available. For more information, see the Troubleshooting section.

即使启用了详细输出,也没有其他消息。

我无法找到有关awslogs内存需求的任何信息,也不会期望它占用大量资源。我没有更改任何服务内存限制,它们通常具有很大的余量。而且,一旦我从任务定义中删除了日志配置,它就会部署并正常运行。

awslogs和日志代理是否有特定的内存/实例类型要求?无论如何,我可以从ecs / ecs-cli compose命令中获取更详细的日志吗?

0 个答案:

没有答案