【问题标题】:All tasks on a ECS service stuck in PROVISIONING stateECS 服务上的所有任务都卡在 PROVISIONING 状态
【发布时间】:2021-04-02 01:48:12
【问题描述】:

我正在尝试设置一项服务,该服务使用应用程序负载平衡器启动 20 个单容器任务。问题是每个任务都停留在PROVISIONING

该服务记录了一个错误,说“服务服务名称无法始终成功启动任务”,这似乎没有多大帮助,因为文档基本上解释了任务启动失败并且重试了很多次。

我的集群正在使用 AutoScaleGroup 容量提供程序,其启动模板使用启用了 ecs 的 AMI,其角色附加了 AmazonEC2ContainerServiceforEC2Role 策略。实例类型为 t2.micro(试过 t2.small 没有结果)

谁能帮我解决这种情况?任务定义可能是造成这种情况的原因吗? 提前致谢

【问题讨论】:

  • 从单个任务开始。它启动了吗?在少数 t2.micro 实例上运行 20 个任务可能是个问题,具体取决于它们需要多少 CPU 和内存。

标签: amazon-web-services amazon-ec2 amazon-ecs


【解决方案1】:

因此,您需要一个 IAM 角色附加策略 ecsInstanceRole 到 LC 以将实例注册到 ecs 集群并将用户数据设置为:

#!/bin/bash
echo ECS_CLUSTER=YOU_CLUSTER_NAME_HERE >> /etc/ecs/ecs.config

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html

【讨论】:

    【解决方案2】:

    最后,我意识到每个任务都必须有一个名为 /health 的 HTTP 端点,它应该返回 200。通过调用该端点,负载均衡器可以确定容器是 PROVISIONING 还是 READY

    【讨论】:

    • 你能解释一下你到底做了什么以及在哪里做的吗?在您的代码中谈论端点?还是需要在 ECS 服务本身中做一些事情?
    • 是的,应该是每个ECS容器上的一个HTTP端点,由开发者编码。
    猜你喜欢
    • 2022-11-04
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 2019-05-13
    • 2022-01-27
    • 2019-06-05
    • 1970-01-01
    相关资源
    最近更新 更多