本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon ECS 容量提供程序
Amazon ECS 容量提供程序用于管理集群中的任务使用的基础设施。每个集群可以有一个或多个容量提供程序和一个可选的默认容量提供程序策略。容量提供程序策略确定任务在集群的容量提供程序之间的分布方式。在运行独立任务或创建服务时,您可以使用集群的默认容量提供程序策略,也可以指定覆盖集群的默认策略的容量提供程序策略。
容量提供程序概念
容量提供程序由以下组件组成。
- 容量提供程序
-
容量提供程序与集群关联,在容量提供程序策略中用于确定任务在其上运行的基础设施。
对于 Amazon ECS 上的 AWS Fargate 用户,有一个
FARGATE
和一个FARGATE_SPOT
容量提供程序。AWS Fargate 容量提供程序是预留的,无需创建,也无法删除它们。将它们与集群关联后,您可以将它们添加到容量提供程序策略中。有关更多信息,请参阅AWS Fargate 容量提供程序.对于 Amazon ECS 上的 Amazon EC2 用户,容量提供程序包含容量提供程序名称、 Auto Scaling 组以及托管扩展和托管终止保护的设置。利用托管扩展Amazon ECS,可管理 Auto Scaling 组的缩减和扩展操作,该组为集群的基础设施提供 Auto Scaling。有关更多信息,请参阅Auto Scaling 组 容量提供程序.
- 默认容量提供程序策略
-
默认容量提供程序策略与 Amazon ECS 集群关联。这将确定在未指定自定义容量提供程序策略或启动类型的情况下,在集群中创建服务或运行独立任务时使用的容量提供程序策略。定义每个集群的默认容量提供程序策略被视为最佳实践。
- 容量提供程序策略
-
在创建服务或运行独立任务时,当集群的默认容量提供程序策略不满足您的需求时,将指定容量提供程序策略。
只有已与集群关联状态为
ACTIVE
或UPDATING
的容量提供程序才能在容量提供程序策略中使用。容量提供程序可以在集群创建期间或通过在创建集群后使用 PutClusterCapacityProviders API 与集群关联。容量提供程序策略包含一个或多个容量提供程序。可以指定可选的基准和权重值,以便更好地控制容量提供程序。
基值指定要对指定容量提供程序至少运行多少个任务。在一个容量提供程序策略中,只能有一个容量提供程序策略定义了基准。
权重值指定应使用指定容量提供程序的已启动任务总数的相对百分比。例如,如果您的策略包含两个容量提供程序,并且两个容量提供程序的权重均为
1
,那么当满足基准时,这些任务将在两个容量提供程序之间均匀分配。使用相同的逻辑,如果您1
为 指定 权重capacityProviderA,为 指定 权重4
,为 指定 capacityProviderB ,那么对于使用 capacityProviderA 运行的每个任务,四个任务将使用 capacityProviderB 。
容量提供程序注意事项
使用容量提供程序时应考虑以下因素:
-
容量提供程序必须先与集群关联,然后才能在容量提供程序策略中指定。
-
指定容量提供程序策略时,可指定的容量提供程序数限制为六个。
-
使用 Auto Scaling 组 容量提供程序的服务无法更新为使用Fargate容量提供程序,反之亦然。
-
在容量提供程序策略中,如果在 控制台中为容量提供程序未指定
weight
值1
,则使用默认值 。如果使用 API 或 AWS CLI,0
则使用默认值 。 -
如果在容量提供程序策略中指定了多个容量提供程序,则至少有一个容量提供程序的权重值必须大于零,且任何权重为
0
的容量提供程序都不会被用来放置任务。如果您在策略中指定的多个容量提供程序的权重全部为0
,则使用该容量提供程序策略的任何RunTask
或CreateService
操作都将失败。 -
在容量提供程序策略中,仅一个容量提供程序可以定义基本值。如果未指定基准值
0
,则使用默认值 。 -
集群可能同时包含Auto Scaling组容量提供程序和Fargate容量提供程序的组合,但容量提供程序策略可能只包含其中的一个,而不同时包含两者。
-
集群可能包含使用容量提供程序和启动类型的服务和独立任务的组合。服务可能会更新为使用容量提供程序策略而不是启动类型,但您必须在执行此操作时强制实施新部署。
-
启用托管终止保护后,还必须启用托管扩展,否则托管终止保护将不起作用。
-
在对服务使用 传统负载均衡器 时,不支持使用容量提供程序。