Amazon ECS:目标组运行状况检查与容器运行状况检查

Dan*_*ick 15 cloud amazon-web-services amazon-ecs docker

Amazon ECS 支持两种不同类型的运行状况检查:

如果配置了两项健康检查,哪一项获胜?如果任一失败,服务将标记为UNHEALTHY? 或两者?我可以配置一个来覆盖另一个吗?

我非常希望目标组的健康状况不会导致 ECS 不断地退回服务,并且我希望可以使用容器健康检查来覆盖它。

小智 2

AWS 文档对此主题有些模糊,但确实表明在运行状况检查方面 ALB 和 ECS 之间存在高度耦合。即,请参阅ECS 运行状况检查行为的文档healthCheckGracePeriodSecondsminimumHealthyPercent示例,该行为受负载均衡器是否存在的影响。

healthCheckGracePeriodSeconds可能有助于避免失败的 ALB 运行状况检查导致 ECS 容器重新启动(至少在服务启动期间):

任务进入 RUNNING 状态后,Amazon ECS 服务计划程序应忽略不健康的 Elastic Load Balancing 目标运行状况检查、容器运行状况检查和 Route 53 运行状况检查的时间段(以秒为单位)。仅当您的服务配置为使用负载均衡器时,这才有效。如果您的服务定义了负载均衡器并且您没有指定运行状况检查宽限期值,则使用默认值 0。

如果您的服务的任务需要一段时间才能启动并响应运行状况检查,您可以指定最多 2,147,483,647 秒的运行状况检查宽限期,在此期间 ECS 服务调度程序将忽略运行状况检查状态。此宽限期可以防止 ECS 服务调度程序将任务标记为不正常并在任务启动之前停止它们。