跳至内容

如何解决 Amazon ECS 中我的服务出现的错误"the closest matching container-instance container-instance-id encountered error 'AGENT'"?

1 分钟阅读
0

当我尝试在 Amazon Elastic Container Service (Amazon ECS) 中放置任务时,我收到以下错误:"[AWS service] was unable to place a task because no container instance met all of its requirements. The closest matching container-instance container-instance-id encountered error 'AGENT'."

解决方法

当在指定用于任务放置的容器实例上运行的 Amazon ECS 容器代理断开连接时,将会发生此错误。

要解决此错误,请检查您的代理日志,并验证代理是否正在实例上运行。然后,重启代理。

检查您的代理日志

完成以下步骤:

  1. 使用 SSH 连接到容器实例。
  2. 检查您的代理日志(位于 /var/log/ecs/ecs-agent.log.YYYY-MM-DD-HH)。
    **注意:**请将示例时间戳替换为您的日志的时间戳。
  3. 通过在 /etc/ecs/ecs.config 文件中使用 ECS_LOGLEVEL 标志,临时激活 ECS 代理的调试日志
  4. 运行相应的命令以重启代理。

如果重启代理后问题仍未解决,请使用调试日志对问题进行故障排除。

验证代理是否正在实例上运行

  1. 使用 SSH 连接到您的 EC2 实例

  2. 要返回容器列表,请运行以下命令:

    docker ps
  3. 查找名为 ecs-agent 的正在运行的容器。有关详细信息,请参阅为什么具有 Amazon Linux 1 AMI 的 Amazon ECS 容器实例已断开连接?

重启代理

对于经 Amazon ECS 优化的亚马逊机器映像 (AMI),请使用相应的命令停止并重启代理。
对于经 Amazon ECS 优化的 Amazon Linux 2 AMI,请运行以下命令:

sudo systemctl restart ecs

对于经 Amazon ECS 优化的 Amazon Linux AMI,请运行以下命令:

sudo stop ecs && sudo start ecs

相关信息

如何解决 Amazon ECS 中的"[AWS service] was unable to place a task because no container instance met all of its requirements"错误?

如何解决 Amazon ECS 中的"the closest matching container-instance container-instance-id has insufficient CPU units available"错误?

为 Amazon ECS Linux 容器实例使用 HTTP 代理

更新经 Amazon ECS 优化的 AMI 上的 Amazon ECS 容器代理

手动更新 Amazon ECS 容器代理(适用于非经 Amazon ECS 优化的 AMI)

AWS 官方已更新 1 年前