AWS ECS部署卡在进行中?

10

我有一个AWS ECS服务正在部署中已经超过一小时了?我该怎么做才能让它完成呢?

我的服务部署选项如下: 最小健康百分比100 最大百分比200


4
您是否检查了ECS服务事件日志以查找任何错误或消息? - Marcin
查看服务的日志选项卡,出现“全部无结果”。 - James Anderbard
我曾经遇到过这种情况,当时没有可用的EC2实例进行部署。如果您将最小健康度设置为100%,那么您需要足够的EC2实例来运行两个服务副本,以便在旧版本继续运行的同时部署新版本。当然,这是假设您没有使用Fargate的情况下。 - Mark B
我正在使用EC2。我刚把最小值改为0,最大值改为200,现在正在等待它。还有其他建议或尝试的事情吗? - James Anderbard
附加说明:我之前使用了不同的服务,现在已经删除并重新创建了一个带有负载均衡器的服务。不确定这是否有影响。 - James Anderbard
7
最终找到了“事件”选项卡而不是“日志”选项卡,它显示了一个关于内存不足的错误。 - James Anderbard
1个回答

0

部署通常会卡住,因为该部署的新任务可能无法变为健康状态。

以下是几个需要查看的地方:

  • 服务事件。这通常会显示启动任务或任务被服务停止的任何问题。
  • 任务停止时的状态。当任务实际上被启动但被停止时。如果由于错误而停止或无法启动,则状态将显示出来。
  • 任务日志。默认情况下,它们不会被记录,因此如果未配置,则默认情况下不会看到任何日志。如果使用EC2,您可以登录到EC2实例,通过Docker日志查看日志,否则您必须在任务定义日志配置或使用EC2实例时在Docker Daemon上进行配置。请注意,如果您配置了awslogs日志驱动程序,您还需要确保容器执行角色允许logs:CreateLogStreamlogs:PutLogEvents权限,否则不会显示任何日志。
  • 某些应用程序需要相当大量的启动CPU或内存,因此如果您为任务提供的资源少于所需资源,它们将永远卡住,并且甚至启动都非常缓慢。您可以通过检查服务CPU和内存利用率指标来验证此内容。
  • 偶尔以上任何一项都无法给您任何见解,但容器确实运行,我会尝试使用ECS Exec在容器上运行故障排除命令或在本地运行它。我通常通过netstat检查进程是否正在侦听端口,或通过strace或sysdig检查进程活动、环境变量、进程输出和文件。
  • 检查ECS故障排除页面

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接