Amazon ECS 部署熔断器如何检测故障
Amazon ECS(弹性容器服务)使用部署熔断器来自动回滚失败的部署。此功能在部署期间监控服务的健康状况,并在发生严重故障时触发回滚。以下是其检测故障方式的详细分解:
1. 熔断器的前提条件
在熔断器能够检测故障之前,您必须配置以下内容:
A. 健康检查
-
容器健康检查:
任务定义中的每个容器都可以定义健康检查命令(例如,HTTP 心跳检测、Shell 命令)。- ECS 会定期运行这些检查。
- 如果容器在配置的时间段内连续未能通过健康检查,则会被标记为不健康。
-
负载均衡器健康检查(如果使用):
如果您的服务使用应用负载均衡器 (ALB)或网络负载均衡器 (NLB),请配置目标组健康检查。- 负载均衡器检查任务是否通过健康检查(例如,特定端点返回 HTTP 200 OK)。
- 不健康的目标将从负载均衡器中注销。
B. 部署配置
在创建或更新服务时,您需要指定包含以下内容的部署配置:
-
maximumPercent:部署期间允许的不健康任务的最大数量(例如,200% = 可以暂时使任务数量翻倍)。 -
minimumHealthyPercent:必须保持活跃的健康任务的最小数量(例如,50% = 至少一半的任务必须保持健康)。 - 启用熔断器: 您必须在部署配置中明确启用熔断器。启用后,ECS 将监控故障并自动回滚。
2. 故障检测的工作原理
步骤 1:部署开始
当您部署服务的新版本时:
- ECS 使用新任务定义逐步更新任务。
- 新任务与现有任务一起启动(在
maximumPercent限制范围内)。
步骤 2:健康监控
ECS 使用以下方式持续检查所有任务(新的和旧的)的健康状况:
- 容器健康检查(来自任务定义)。
- 负载均衡器目标组健康状况(如果适用)。
- ECS 服务健康状况(例如,任务是否正在运行或已停止)。
步骤 3:故障阈值
如果满足任何以下条件,熔断器将触发回滚:
A. 任务健康检查失败
- 新部署的任务连续未能通过容器健康检查(例如,在超时窗口内连续 3 次失败)。
- 结果:该任务被标记为不健康,并且
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。