【问题标题】:AWS ECS Fargate Target Group Failing HealthChecksAWS ECS Fargate 目标组运行状况检查失败
【发布时间】:2021-06-13 01:28:31
【问题描述】:

SpringBoot 应用程序在 AWS Fargate 集群的 ECS 服务中作为 ECS 任务运行。 ECS 服务是负载平衡的,因此由服务生成的任务会自动注册到目标组。

我可以通过API Gateway => VPC Link => Network ELB => Application ELB => ECS Task调用Health端点,如下图:

但是,HealthChecks 似乎失败了,因此,任务被不断取消注册,导致设置完全无法使用。

我已确保将目标组的 HealthCheck 指向正确的端点 URL,如下所示:

我还确保 Fargate 任务所属的安全组允许来自 Application Load Balancer 的流量,如下所示:

但不知何故,HealthChecks 一直失败,任务被取消注册,我很困惑!

非常感谢您的帮助!

【问题讨论】:

  • 也许您的应用程序不返回 200 代码,而是重定向代码(301 或 302)。也许它使用不同的端口?您的问题缺少很多信息。
  • @Marcin 根据我的邮递员的说法,端点确实返回了 200 代码!而且我已经确保一切都在端口 80 上运行。
  • 最后一个SG是给fargete的?如果是这样,由于 ALB 和 Fargate 之间的动态端口映射,它应该允许所有传入端口,而不仅仅是 80。
  • @Marcin,我试过了;还是不行!奇怪的是,同一个安全组中的其他 ECS 服务在几个小时内处于相同的情况,他们通过了健康检查,现在处于稳定状态。

标签: amazon-web-services spring-boot containers aws-api-gateway aws-fargate


【解决方案1】:

问题实际上在于运行状况检查间隔(30 秒)和阈值(2 次检查),这在 Task 刚刚启动且无法响应 HTTP 请求时过于频繁。

所以,我增加了间隔和阈值,现在一切正常!

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2021-11-24
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多