Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

容器实例耗尽

有时您可能需要删除集群中的实例;例如,要执行系统更新、更新 Docker 守护程序或缩减集群规模。容器实例耗尽允许您从集群中删除容器实例而不影响集群中的任务。

当您将某个容器实例设置为 DRAINING 时,Amazon ECS 将阻止安排放置在该容器实例上的新任务。如果资源可用,替换服务任务将在群集中的其他容器实例上启动。容器实例上处于 PENDING 状态的服务任务将立即停止。

容器实例上处于 RUNNING 状态的服务任务将停止,并根据服务的部署配置参数 minimumHealthyPercentmaximumPercent 进行替换。

  • 如果 minimumHealthyPercent 低于 100%,计划程序在替换任务时可以临时忽略 desiredCount。例如,desiredCount 为四项任务,如果最小值为 50%,则允许计划程序在开始两项新任务之前终止两项现有任务。如果最小值为 100%,那么在替换任务正常运行之前,服务计划程序无法删除现有任务。如果针对未使用负载均衡器的服务的任务处于 RUNNING 状态,则认为这些任务正常运行。服务任务的状态如果为 RUNNING 且使用负载均衡器,同时该负载均衡器报告托管该服务任务的容器实例运行正常,则该服务任务运行正常。

  • maximumPercent 参数表示进行任务替换时正在运行的任务数量上限,允许您定义替换批处理大小。例如,如果 desiredCount 为四项任务,那么上限 200% 会在停止将要耗尽的四项任务前启动四项新任务 (假设需要进行此操作的集群中有可用资源)。如果上限为 100%,只有在耗尽任务停止后才能启动替换任务。

有关更多信息,请参阅服务定义参数

不属于服务的 PENDINGRUNNING 任务不会受到影响;您必须等待它们完成,或手动停止它们。

如果容器实例中已没有 RUNNING 任务,即完成了耗尽 (虽然状态仍为 DRAINING)。您可以使用具有 containerInstance 参数的 ListTasks 操作进行验证。

如果您将容器实例的状态从 DRAINING 更改为 ACTIVE,Amazon ECS 计划程序可以再次计划该实例的任务。

耗尽实例

您可以使用 UpdateContainerInstancesState API 操作或 update-container-instances-state 命令将容器实例的状态更改为 DRAINING

以下过程演示了如何使用 AWS 管理控制台将您的实例设置为 DRAINING

使用控制台将实例设置为 DRAINING

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 在导航窗格中,选择 Clusters 并选择群集。

  3. 选择 ECS Instances,然后选中容器实例的复选框。

  4. 选择 ActionsDrain instances

  5. 实例操作完成后,选择 Done

本页内容: