我有一个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命令中获取更详细的日志吗?