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: 1024cpu: 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服务不断注销目标组和启动/停止任务的主要内容,如果未能解决你的问题,请参考以下文章

AWS 目标组在同一个 ECS 任务上注册 2 个目标?

暂时停止 ECS 集群

ECS 任务未启动 - 已停止(CannotPullContainerError:“来自守护程序请求的错误响应在等待连接时取消”

目标组在端口 80 上的健康检查不断失败,并在使用动态端口映射时启动新实例

AWS ECS Fargate 模式 - 自动扩展

在 Beanstalk 部署或 ECS 任务不使用时安排 EC2 实例的停止/启动?