Nav*_*rro 5 amazon-web-services amazon-ecs aws-fargate
从AWS文档中,我可以看到Fargate的AWS::ECS::TaskDefinition中需要CPU和Memory属性,但如果使用Fargate,则资源内的ContainerDefinition 中不需要。
这究竟是如何工作的?如果我不指定它,ContainerDefinition它将使用任务可用的尽可能多的资源?如果任务中只有一个容器......定义这些值是否有意义?如果需要它们,对我来说这似乎是多余和冗长的。
Nav*_*rro 13
当容器在 a 中没有指定限制时TaskDefinition,容器将使用该任务的所有可用资源,这对于任务来说是强制性的Fargate。
这意味着如果TaskDefinition. 尽管它们是多余的(如果等于任务本身的数量)甚至是有害的(如果它们低于给予任务的数量),但可以指定它们。
如果多个容器属于同一任务,Fargate则将在所有容器之间均匀分配资源。这可能是(或不是)期望的行为。
当您注册任务定义时,您可以指定用于该任务的总 CPU 和内存。这与容器定义级别的 cpu 和内存值是分开的。
如果使用 Fargate 启动类型,则这些任务定义字段是必需的,并且支持 cpu 和内存的特定值。这将是呈现给任务的 CPU/内存的硬限制。例如,如果您的任务配置为使用 1 个 vCPU 和 2 GB 内存,那么目前内存限制为 2 GB。如果在任何时候任务内存利用率超过 2 GB,任务将因 OutOfMemory 错误而终止。
任务大小:https : //docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size
您还可以在容器级别指定 cpu 和内存资源。这将是呈现给容器的资源量(一个任务可以有多个容器)。如果您的容器尝试超过此处指定的资源,则该容器将被终止。这些字段对于使用 Fargate 启动类型的任务是可选的,唯一的要求是为任务内所有容器保留的 cpu 和内存总量低于任务级别的 cpu 和内存值(如果指定)。
在容器级别,Docker 守护程序为容器保留至少 4 MiB 的内存,因此您不应为容器指定少于 4 MiB 的内存。
标准容器定义参数:https : //docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#standard_container_definition_params
| 归档时间: |
|
| 查看次数: |
3279 次 |
| 最近记录: |