【问题标题】:What to do when ECS-agent is disconnected?ECS-agent断线怎么办?
【发布时间】:2017-02-11 12:53:24
【问题描述】:

我的集群中的一个 EC2 实例有时会断开其 ECS 代理的连接。这会默默地从集群中删除 EC2 实例(即不再有资格运行任何服务),并默默地从服务服务器中耗尽我的集群。我有一个自动缩放组支持我的集群,生成服务器以保持健康的数量。但是 ECS-agent 断开的服务器并没有标记为不健康,所以 AS-group 认为一切正常。

我觉得必须有一些东西(容易)来缓解这种情况,或者我在选择 ECS 并在生产中使用它时遇到了很大的问题。

【问题讨论】:

  • 您使用的是最新的 ECS AMI 吗?几个月前我遇到了一个类似的问题,通过 Docker/ECS 升级解决了。

标签: amazon-ec2 amazon-ecs


【解决方案1】:

我们有这个问题很长时间了。每个新的 AWS ECS 优化 AMI 都会变得更好,但在 3 个月前它仍然不时发生。正如 mcheshier 提到的,确保始终使用最新的 AMI 或至少是最新的 aws ecs 代理

我们能够解决它的唯一方法是:

  1. 定时自动缩放旋转
    1. 我们会尝试通过随机放大和缩小来防止它发生
  2. 良好的 cloudwatch 警报
    1. 我们碰巧将我们的应用程序设置为一组基于队列 (SQS) 的微服务。我们可以根据队列扩大和缩小规模。我们设置了不错的监控,让我们可以估计跨多个 ECS 容器的队列速率。当我们检测到速率关闭时,我们将轮换整个 ECS 实例。 IE。假设我们的集群部署了 4 个运行中的 worker-1 容器。我们估计每个工作人员每 5 分钟发送1000 条消息。如果我们的排队率是每 5 分钟 3000 并且我们有 4 名工人,那么 1 名工人没有按预期工作。我们在 lambda 中设置了一些脚本来查找故障脚本并终止运行该容器的整个实例。

我希望这会有所帮助,我知道它特定于我们的内部应用程序,但我可以给您和其他任何人的建议是采取主动并尽可能多地发布指标。这将使您可以进行一些简洁的分析并查找系统中的问题,这就是其中之一。

【讨论】:

  • 用最新的 ECS 优化 AMI 替换实例暂时解决了这个问题,但我仍然对 AWS 没有在 ecs-agent 关闭时将其实例标记为故障的想法感到噩梦。 :s
  • 他们否认它的存在,并且没有人有确凿的证据来证明是什么导致了它,因为它是不一致的。但是,经验法则是始终使用最新的 aws linux AMI。如果你有能力我会写一些东西通过电子邮件/松弛通知你/但是当一个新的发布时你可以相应地更新
猜你喜欢
  • 2021-08-04
  • 1970-01-01
  • 2016-05-15
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-21
  • 1970-01-01
相关资源
最近更新 更多