对弹簧致动器的 AWS Fargate 运行状况检查进行故障排除

smf*_*ftr 4 spring-boot-actuator aws-fargate

/health在 AWS ECS Fargate 中部署了可访问端点的 Spring Boot 应用程序。有时容器会停止并Task failed container health checks显示消息。有时每天发生一次,有时每周一次,可能取决于负载。这是在以下文件中指定的运行状况检查命令Task Definition

CMD-SHELL,curl -f http://localhost/actuator/health || exit 1
Run Code Online (Sandbox Code Playgroud)

我的问题是如何对运行状况检查失败时 AWS 收到的内容进行故障排除。

Joh*_*nis 10

如果其他人因为容器运行状况检查失败(与 ELB 运行状况检查不同)而来到这里,AWS 提供了一些基本建议

  • 检查该命令是否在容器内部有效。就我而言,我没有在容器映像中安装curl,但是当我从容器外部测试它时,它工作得很好,这让我误以为它正在工作。
  • 检查 CloudWatch 中的任务日志

如果检查只是有时失败(尤其是在负载下),您可以尝试增加超时,但也要检查任务指标(内存和 CPU 使用情况)。垃圾收集可能会导致任务暂停,如果所有 vCPU 都忙于处理其他请求,则运行状况检查可能会延迟,因此您可能需要为任务分配更多内存和/或 vCPU。