为什么注册到 ELB 的正常运行的 Amazon ECS 任务被标记为运行不正常并被替换?
上次更新时间:2019 年 6 月 20 日
Elastic Load Balancing 反复将正常运行的 Amazon Elastic Container Service (Amazon ECS) 任务标记为运行不正常。这些错误标记的任务将停止,然后将会启动新任务以替换它们。我应该如何排查此问题?
解决方法
某些 Amazon ECS 任务具有多个依赖项和冗长的引导流程,这些流程可能会超出 ELB 运行状况检查宽限期,即使在按预期正常运行时也会出现这种情况。如果 Amazon ECS 任务在宽限期内未响应 ELB 运行状况检查,它们将被标记为“运行不正常”。要延长您的服务的运行状况检查宽限期,请执行以下操作:
- 打开 AWS 管理控制台。
- 在导航栏中,选择服务,然后从列表中选择 ECS。
- 从服务名称列表中选择您的服务。
- 选择更新。
- 选择下一步。
- 在步骤 2: 配置网络页面上,将运行状况检查宽限期更改为服务的适当时间段(最长为 2,147,483,647 秒)。
注意:为防止延迟替换理应运行不正常的 Amazon ECS 任务,请仔细估算最长已知任务所需的宽限期。设置宽限期时,请考虑所有相关因素,例如引导时间和提取容器图像的时间。 - 选择下一步,然后选择更新服务。
您还可以延长宽限期:
- 使用 AWS CloudFormation 的 AWS::ECS::Service 资源中定义的 HealthCheckGracePeriodSeconds 参数。
- 在 AWS 命令行界面 (AWS CLI) 中运行 UpdateService 命令并增大 --health-check-grace-period-seconds 值。