Amazon ECS 任务生命周期 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon ECS 任务生命周期

如果手动启动任务或将任务作为服务的一部分启动,则任务在自行完成或被手动停止之前可能经历多种状态。一些任务旨在作为批处理作业运行,将自然地依次经历 PENDINGRUNNINGSTOPPED 状态。可为服务的一部分的其他任务旨在无限期持续运行,或根据需要向上扩展和向上扩展。

当请求任务状态更改(如停止任务或更新所需服务计数以将其扩展或缩减)时,Amazon ECS 容器代理会根据任务的上一个已知状态 (lastStatus) 和任务的所需状态 (desiredStatus) 跟踪这些更改。任务的上一个已知状态和所需状态均可在控制台中或通过使用 API 或 Amazon CLI 描述任务进行查看。

以下流程图显示任务生命周期流程。

任务生命周期状态图。状态为 PROVISIONING、PENDING、ACTIVATING、RUNNING、DEACTIVATING、STOPPING。

生命周期状态

以下是每个任务生命周期状态的描述。

PROVISIONING (正在预置)

Amazon ECS 必须先执行其他步骤,然后再启动任务。例如,对于使用 awsvpc 网络模式的任务,需要预置弹性网络接口。

PENDING

这是一个过渡状态,其中 Amazon ECS 正在等待容器代理采取进一步操作。任务一直处于待处理状态,直到有可用资源可用于该任务。

ACTIVATING (正在激活)

这种一种过渡状态,在此状态下,Amazon ECS 必须在启动任务后但在任务可以过渡到 RUNNING 状态之前执行其他步骤。例如,对于已配置服务发现的任务,必须创建服务发现资源。对于配置为使用多个 Elastic Load Balancing 目标组的服务所包含的任务,在此状态下将注册目标组。

RUNNING (正在运行)

任务正在成功运行。

DEACTIVATING (正在停用)

这种一种过渡状态,在此状态下,Amazon ECS 必须在任务停止前执行其他步骤。例如,对于配置为使用多个 Elastic Load Balancing 目标组的服务所包含的任务,在此状态下将注册目标组。

STOPPING (正在停止)

这是一个过渡状态,其中 Amazon ECS 正在等待容器代理采取进一步操作。

对于 Linux 容器,容器代理将发送 SIGTERM 信号,以通知应用程序需要完成并关闭,然后在等待任务定义中设置的 StopTimeout 期限后发送 SIGKILL

DEPROVISIONING (正在取消预置)

Amazon ECS 必须在已停止任务后但在任务过渡到 STOPPED 状态之前执行其他步骤。例如,对于使用 awsvpc 网络模式的任务,需要分离并删除弹性网络接口。

STOPPED (已停止)

任务已成功停止。

如果您的任务因某个错误而停止,请参阅 查看 Amazon ECS 已停止任务错误

DELETED

这是任务停止时的过渡状态。此状态不会显示在控制台中,而是显示在 describe-tasks 中。