AWS ECS更新服务后新任务启动即停止,旧任务留存问题咨询
AWS ECS容器更新失败排查与修复
核心问题本质
你遇到的新任务启动后自动终止、负载均衡器未切换至新版本的现象,根源在于服务健康检查配置不匹配或部署策略参数设置不合理,导致ECS判定新任务不可用,触发自动回滚至旧任务。
具体排查与修复方案
负载均衡器健康检查配置错误
检查目标组的健康检查路径、端口是否与容器实际提供服务的路径/端口完全一致。若新任务健康检查失败,负载均衡器不会将流量导向它,ECS服务会判定新任务异常并触发回滚。
验证方式:手动查看目标组的健康状态,确认新任务是否被标记为不健康。服务部署策略参数不合理
你的集群有3个可用区,但仅运行1个任务。默认部署策略(如rolling-update)下,minimumHealthyPercent默认值为100%,意味着ECS必须保证始终有健康任务在运行——但单任务场景下无法先启动新任务再终止旧任务,最终导致新任务被强制终止。
修复:调整服务部署参数,允许更新时暂时无健康任务运行,同时允许启动额外任务:aws ecs update-service --cluster devCluster --service devTest --minimum-healthy-percent 0 --maximum-percent 200调整完成后再执行更新部署命令。
任务定义网络配置不匹配
确认新任务定义中的端口映射、网络模式(如awsvpc)是否与负载均衡器目标组配置一致。若新任务端口未正确暴露,或网络模式导致负载均衡器无法访问,同样会触发健康检查失败。容器启动超时导致误判
若容器启动耗时较长,默认健康检查的超时、间隔时间可能过短,导致被误判为不健康。调整目标组的健康检查超时时间、间隔时间和健康阈值,给容器足够的启动缓冲时间。
验证步骤
- 修改上述配置后,重新执行更新命令:
aws ecs update-service --cluster devCluster --service devTest --force-new-deployment --task-definition test:5 - 查看服务事件日志:
aws ecs describe-services --cluster devCluster --services devTest,检查是否存在健康检查失败、任务终止的相关记录。 - 查看目标组健康状态,确认新任务被标记为
健康后,负载均衡器流量会自动切换至新版本。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

