Amazon ECS 任务放置
使用 EC2 启动类型来启动任务时,Amazon ECS 必须根据任务定义中指定的要求(例如 CPU 和内存)确定将任务放置在何处。同样,如果您缩减任务计数,Amazon ECS 必须确定终止哪些任务。您可以应用任务放置策略和约束,自定义 Amazon ECS 如何放置和终止任务。使用 Fargate 启动类型的任务不支持任务放置策略和约束。预设情况下,Fargate 任务分布在可用区中。对于所有其他任务,原定设置任务放置策略取决于您是手动还是在服务中运行任务。有关更多信息,请参阅计划 Amazon ECS 任务。
任务放置策略是一种算法,用于选择放置任务的实例,或要终止的任务。例如,Amazon ECS 可以随机选择实例;还可以选择一组实例,将任务平均分配到其中。
任务放置约束是放置任务时会考虑的一条规则。例如,您可以使用约束,根据可用区或实例类型来放置任务。您也可以将属性(若干对名称/值)与容器实例相关联,然后根据属性使用约束来放置任务。
任务放置策略是尽力而为。Amazon ECS 仍会尝试放置任务,即使在大多数最优放置选项不可用时也是如此。但是,任务放置约束是绑定的,它们可能阻止任务放置。
您可以将任务放置策略与约束配合使用。例如,您可以使用任务放置策略和任务放置约束在多个可用区中分配任务,并根据每个可用区中的内存装填任务,但只针对 G2 实例。
Amazon ECS 放置任务时,使用以下流程选择容器实例:
-
标识满足任务定义中对 CPU、GPU、内存和端口要求的实例。
-
识别满足任务放置约束的实例。
-
识别满足任务放置策略的实例。
-
选择放置任务的实例。