我有一个ECS群集,它有一个自动缩放组中定义的两个实例,最小容量为2,
我已经定义了ecs服务,在每个实例创建或更新时运行两个容器。因此,它在ecs集群中为每个ecs实例启动两个容器。
现在,假设当我停止/终止该群集中的实例时,由于自动缩放组的最小容量为2,因此将自动启动新实例。
问题是当新实例出现在自动扩展组中时,它不会运行两个被定义为服务的任务,而是在一个ecs实例上运行4个任务而另一个新的ecs实例没有运行任何任务在上面。
每当Auto Scaling组中出现新实例时,我如何管理它还会运行这两个任务?
如果您希望这两个ec2实例专用于这4个任务,那么您可以修改任务定义内存限制并使其需要一半的1 ecs实例内存。
假设您有t3.small,那么您的任务定义限制将是1gb的内存限制。这样,如果你有一个t3.small实例,你将只能运行2个任务。每当你添加另一个t3.small实例时,你应该满足缺少的所需内存,另外两个任务将在新的t3.small实例上运行。
您还可以考虑为每个ecs实例运行1个任务,在服务创建中选择运行Deamon服务类型。并在任务定义中为您的任务提供更多内存。所以每个新的ec2实例将始终为此服务提供1个运行任务。