为什么我的 Amazon ECS 集群中的任务无法启动?

2 分钟阅读
0

我正在尝试在我的 Amazon Elastic Container Service (Amazon ECS) 集群中下达任务。但是,我的任务下达失败了,我的任务无法在我的集群中更改为 RUNNING(正在运行)状态。

简短描述

要在集群中成功下达任务,请选择以下解决方案之一:

  • 如果您使用 Amazon ECS 服务下达任务,请完成 Check your service event messages(检查您的服务事件消息)和 Check the stopped task for errors(检查已停止的任务是否存在错误)部分中的步骤。
  • 如果您将任务作为独立任务或计划任务运行,请完成 Check the stopped task for errors(检查已停止的任务是否存在错误)部分中的步骤。

解决方法

查看您的服务事件消息

要查看您的服务事件消息,请完成以下步骤:

  1. 打开 Amazon ECS 控制台
  2. 在导航窗格中,选择 Clusters(集群),然后选择包含您服务的集群。
  3. 在集群页面的 Services(服务)选项卡的 Service Name(服务名称)列中,选择要查看的服务。
  4. 在您的服务页面上,选择 Events(事件)。
  5. Message(消息)列中,查找错误或其他有用信息。

根据您在步骤 5 中的调查发现,查看服务事件消息以对错误进行故障排除。

**注意:**服务事件仅显示最近的 100 个事件。

检查已停止的任务是否存在错误

要检查已停止的任务是否存在错误,请完成以下步骤:

**重要事项:**您只能看到在过去 60 分钟内停止的任务。

  1. 打开 Amazon ECS 控制台
  2. 在导航窗格中,选择 Clusters(集群),然后选择包含已停止任务的集群。
  3. 在集群页面上,选择 Tasks(任务)选项卡。
  4. Filter desired status(筛选所需状态)下拉列表中,选择 Stopped(已停止),然后选择要检查的已停止任务。最先显示最近停止的任务。
  5. Stopped reason(停止原因)代码以及停止时间显示在已停止任务页面的顶部。
  6. 根据您在步骤 5 中的调查发现,查看以下停止原因代码以解决您的错误:

Task failed ELB health checks in (elb elb-name)(任务未通过 (elb elb-name) 中的 ELB 运行状况检查)

当前任务未通过与任务服务关联的负载均衡器的弹性负载均衡运行状况检查。有关详细信息,请参阅 Amazon ECS 中的服务负载均衡器故障排除

**注意:**此根本原因仅适用于作为服务的一部分启动的任务。

由(部署 deployment-id)发起的扩缩活动

如果任务因服务缩小规模或滚动部署不足而停止,则会看到此停止原因。有关如何暂停和恢复扩缩以避免部署期间出现潜在问题的详细信息,请参阅 Amazon ECS 中的服务自动扩缩故障排除

**注意:**此根本原因仅适用于作为服务的一部分启动的任务。

主机 EC2(实例 ID)已停止/已终止

如果您停止或终止正在运行任务的 Amazon Elastic Compute Cloud (Amazon EC2) 容器实例,则会看到此停止原因。要调查您的 Amazon EC2 实例终止的原因,请参阅 Amazon EC2 为什么终止我的实例?

用户强制注销容器实例

如果您使用正在运行的任务强制注销容器实例,则会看到此停止原因。

任务中的重要容器已退出

如果在任务定义中标记为必需的容器退出或消失,则任务可能会停止。如果基本容器存在并导致任务停止,则会看到此 Stopped reason(停止原因)。

任务启动失败

如果您看到“Task failed to start”(任务启动失败)错误,请先展开容器。然后,检查 Status reason(状态原因)行,看看是什么原因导致任务状态发生变化:

另外,请查看 Amazon ECS 中的 API 失败原因

如果您使用任何任务下达约束或策略,则您的集群必须使用符合您的约束策略要求的实例。

相关信息

如何解决 Amazon ECS 中的错误“[AWS service] was unable to place a task because no container instance met all of its requirements”([AWS 服务] 无法下达任务,因为没有容器实例满足其所有要求)?

如何解决 Amazon ECS 中的错误“the closest matching container-instance container-instance-id has insufficient CPU units available”(匹配最接近的容器实例 container-instance-id 可用的 CPU 单元不足)?

如何解决 Amazon ECS 中我的服务的错误“the closest matching container-instance container-instance-id encountered error 'AGENT'”(匹配最接近的容器实例 container-instance-id 遇到错误“AGENT”)?

如何解决 Amazon ECS 中的 Amazon ECR 错误“CannotPullContainerError: API error”(CannotPullContainerError:API 错误)?

如何解决 Amazon ECS EC2 启动类型任务中的“CannotPullContainerError”错误?

AWS 官方
AWS 官方已更新 8 个月前