【问题标题】:What do the different ECS stop times mean?不同的 ECS 停止时间是什么意思?
【发布时间】:2019-09-14 21:12:11
【问题描述】:

https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Task.html一个任务有多个“停止”时间

停在

任务停止时的 Unix 时间戳(任务从 RUNNING 状态转换到 STOPPED 状态)。

停在

任务停止时的 Unix 时间戳(从 RUNNING 状态转换为 STOPPED)。

executionStoppedAt

任务执行停止时的 Unix 时间戳。

这些描述似乎与我非常相似。它们各自是什么意思?具体

  • stoppedAtstoppingAt 有什么区别?
  • 任务执行停止意味着什么?与stoppedAtstoppingAt 有何不同(/为什么?)?
  • 任务计费到什么时间?

例如,为最近停止的任务调用 describe-tasks 会给出:

"executionStoppedAt": 1568462761.0,
"stoppingAt":         1568462761.499,
"stoppedAt":          1568462817.635,

另一个任务给了

"executionStoppedAt": 1568464247.0,
"stoppingAt":         1568464246.39,
"stoppedAt":          1568464300.417,

这有趣地表明不同的时间并不总是以相同的顺序。

【问题讨论】:

    标签: amazon-web-services amazon-ecs aws-fargate


    【解决方案1】:

    如果您检查 ECS 任务的lifecycle,它包含在停止任务之前的完整周期,因为 ECS 代理涉及此生命周期。

    生命周期状态 以下是每个任务生命周期状态的描述。

    供应

    Amazon ECS 必须在任务完成之前执行其他步骤 推出。例如,对于使用 awsvpc 网络模式的任务, 需要配置弹性网络接口。

    待处理

    这是一个过渡状态,Amazon ECS 正在等待 容器代理采取进一步行动。

    激活

    Amazon ECS 必须在任务启动后执行额外步骤 但在任务可以转换到 RUNNING 状态之前。例如, 对于配置了服务发现的任务,服务 必须创建发现资源。对于属于 配置为使用多个 Elastic Load Balancing 的服务 目标群体,目标群体注册发生在此状态。

    正在运行

    任务运行成功。

    停用

    Amazon ECS 必须在任务停止之前执行其他步骤。 例如,对于属于已配置服务的一部分的任务 要使用多个 Elastic Load Balancing 目标组,目标组 在此状态下会发生注销。

    停止

    这是一个过渡状态,Amazon ECS 正在等待 容器代理采取进一步行动。

    取消配置

    Amazon ECS 必须在任务停止后执行其他步骤 但在任务转换到 STOPPED 状态之前。例如,对于 使用 awsvpc 网络模式、弹性网络接口的任务 需要分离和删除。

    已停止

    任务已成功停止。

    【讨论】:

    • 这有助于区分stoppingAtstoppedAt,但是您对executionStoppedAt 有任何指导吗,为什么它有时在stoppingAt 之前,有时在之后?
    • 在任务上调用 StopTask 时,会向任务中运行的容器发出相当于 docker stop 的命令。这会产生一个 SIGTERM 值和默认的 30 秒超时,之后发送 SIGKILL 值并强制停止容器。如果容器优雅地处理 SIGTERM 值并在收到后 30 秒内退出,则不会发送 SIGKILL 值。
    • 所以可能是容器没有在所需的超时时间内停止。 docs.aws.amazon.com/en_pv/AmazonECS/latest/APIReference/…
    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 2012-03-25
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多