如何为部署到 AWS ECS 的容器配置健康检查

Lit*_*lah 4 amazon-web-services amazon-ecs docker

我目前正在使用 AWS ECS,我对如何为部署到 AWS ECS 的容器配置运行状况检查感到有些困惑。

您可以在 TargetGroup 上定义健康检查,但也可以在 TaskDefinition 上定义健康检查。

我想知道什么是最佳实践以及为什么。目前我已经在 TargetGroup 中定义了它并且它按预期工作。

但我想弄清楚为什么你会使用一个而不是另一个?你会在这两个地方定义它吗?

我正在使用带有 ECS 的应用程序负载均衡器。

Adi*_*iii 5

如果您使用 ALB,您应该在 ALB 中使用健康检查。

如果 ALB 检查失败,ALB 会使目标组不健康,结果您的容器将被杀死。

健康检查中最重要的是 HTTP 状态码,它应该200或3xx或4xx取决于配置。如果指定的代码与目标不匹配将被标记为不健康。

两种检查都有不同的目的,

  • 如果你使用ALB,你应该使用 ALB healthcheck
  • 如果您使用的是调度程序基础 Task,那么您可以使用 Docker 容器健康检查。

Amazon Elastic Container Service (ECS) 现在支持 Docker 容器运行状况检查。这使您可以更好地控制监控任务的健康状况,并提高 ECS 服务调度程序确保您的服务健康的能力。

以前,ECS 服务调度器依靠弹性负载均衡器 (ELB) 来报告容器健康状态并重启不健康的容器。这需要您将 ECS 服务配置为使用负载均衡器,并且仅支持 HTTP 和 TCP 健康检查。

ecs-supports-container-health-checks-and-task-health-mana

如果服务的任务未通过负载均衡器运行状况检查标准,则该任务将停止并重新启动。此过程会一直持续,直到您的服务达到所需的运行任务数。

服务负载平衡健康