ECS服务不断注销目标组和启动/停止任务
Posted
技术标签:
【中文标题】ECS服务不断注销目标组和启动/停止任务【英文标题】:ECS service keeps deregistering Target Group and start/stop tasks 【发布时间】:2020-04-29 03:18:17 【问题描述】:我有一个 ECS 服务重复启动和停止在 EC2 (m5.large
) 启动类型容器上运行的任务。事件选项卡循环显示这些消息 -
service test-service deregistered 1 targets in target-group localhost-localhost-default
service test-service has begun draining connections on 1 tasks.
service test-service deregistered 1 targets in target-group localhost-localhost-default
service test-service has started 2 tasks: task 4e1569b3-a15c-4bac-85f7-396b530113a5 task d5651035-8e3d-48df-b457-d05e5b7be8db.
没有什么可以帮助理解可能发生的事情了。当我检查目标组本身时,实例不再注册到它。我已经为应该足够的任务分配了memory: 1024
和cpu: 512
。
我能做些什么来了解这里的问题是什么?
【问题讨论】:
您是否配置了一些负载均衡器?检查:docs.aws.amazon.com/elasticloadbalancing/latest/application/…。一些健康检查可能会完成您的任务 @JhonnFrazão - 是的,我有一个配置了目标组和 2 个 EC2 实例的 ALB。他们首先显示Unhealthy
。我添加了 Cloudwatch 监控并在 LOGS 选项卡中看到此消息 - ECONNREFUSED 127.0.0.1:5432
。我猜这是因为容器无法连接到服务器。但我认为不应该启动/停止容器本身。或者可以吗?
它可以而且它应该是这样工作的。如果无法满足健康检查条件,并且您将 ECS 服务配置为使用 ALB 健康检查,那么它将终止未通过健康检查的容器。
@marianogg9 我确实让它工作了。容器端口未正确暴露。
我遇到了类似的问题。在我的例子中,ECS 试图部署一个配置错误的旧镜像。我的最新部署优先考虑只是时间问题。就我而言,查看容器的日志是我的想法。
【参考方案1】:
在这条线上,
service test-service has started 2 tasks: task 4e1569b3-a15c-4bac-85f7-396b530113a5 task d5651035-8e3d-48df-b457-d05e5b7be8db.
任务 ID 是一个超链接,当您单击它时,它将带您进入可以找到有关该特定任务的所有详细信息的页面。
这里有一个条目“停止原因”,它将显示任务停止的原因。
如果由于健康检查失败而停止,它将显示在事件页面本身。
【讨论】:
以上是关于ECS服务不断注销目标组和启动/停止任务的主要内容,如果未能解决你的问题,请参考以下文章
ECS 任务未启动 - 已停止(CannotPullContainerError:“来自守护程序请求的错误响应在等待连接时取消”