似乎每个容器实例不能放置三个以上的任务?

时间:2019-02-05 12:38:22

标签: amazon-web-services amazon-ec2 amazon-ecs

我有10个服务/任务定义,每个定义需要512内存和10 cpu(来自容器定义)。 我有三个t2.medium实例,每个实例都有4GB内存。 因此,最多可以启动24个任务实例。

但是,这三个实例最多只能运行7个服务(3/2/2)。 对于不在“事件”选项卡中运行的服务,存在以下错误:

服务完整性检查无法放置任务,因为没有容器实例满足其所有要求。最接近匹配的容器实例3e2dbe6a-7a07-46f2-846b-ccccb9adaeee遇到错误“ RESOURCE:ENI”。

我尝试将ec2实例上的AMI更新为最新的经ecs优化的,但没有帮助。似乎一个ec2 / container实例不能启动超过3个任务?奇怪的是,它像1个月前一样正常工作(所有10个服务都在运行),这些错误在20-26天前出现了。

有什么主意吗?

每个服务都使用awsvpc网络模式和awslog日志驱动程序。


以下列出了我的网络接口:

enter image description here

2 个答案:

答案 0 :(得分:2)

对于仍然存在此问题的用户,2019年6月发布的修复程序是启用ENI中继。例如。启用ENI中继后,以前限于3个任务的c5.xlarge现在可以支持20个。

看看https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html

答案 1 :(得分:1)

消息“ RESOURCE:ENI”表示分配弹性网络接口存在问题。

每个docst2.medium应该能够分配3个ENI。因此,假设ECS为每个容器分配一个不同的ENI,这就是您不能为一个实例分配三个以上容器的原因。

但是,这表示实际上每个实例最多只能有2个容器。这让我想知道您是否超出了limit of ENIs per region。除非将ENI拆离而不删除,否则这不会发生(如果您的IAM权限不正确,则可能会发生)。建议您在AWS控制台中查看ENI页面,以确保您没有很多未附加的ENI。