View a markdown version of this page

进程守护程序自动修复 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

进程守护程序自动修复

进程守护程序对于实例的运行状况可能关键或不关键。在创建或更新进程守护程序时,可以使用 critical 参数来控制此设置。critical 参数的默认值为 true,因此除非您将 critical 设置为 false,否则该进程守护程序将被视为关键进程守护程序。

对于关键进程守护程序,如果进程守护程序任务停止或运行不正常,Amazon ECS 会将该实例视为受损,并自动将其耗尽并进行替换。关键进程守护程序的自动修复操作如下:

  1. Amazon ECS 检测进程守护程序任务何时停止或运行状况不佳。

  2. Amazon ECS 将该实例标记为耗尽,这会阻止它接受新的应用程序任务。

  3. Amazon ECS 预置替换实例,并在其上启动进程守护程序任务。

  4. 进程守护程序任务达到正常运行状态后,Amazon ECS 会将应用程序任务从耗尽的实例调度到替换实例上。

  5. Amazon ECS 终止原始实例。

对于非关键进程守护程序,进程守护程序任务的运行与容器实例的运行状况无关。如果进程守护程序任务失败、停止或运行不正常,Amazon ECS 会使容器实例保持活动状态。非关键进程守护程序永远不会阻止实例注册,因此即使进程守护程序启动失败,也可以立即放置应用程序任务。

重要

进程守护程序运行状况检查是可选的,但强烈推荐进行此检查。如果没有运行状况检查,Amazon ECS 只能在进程守护程序任务停止时检测故障。

您可以使用 DescribeContainerInstances API 或 DescribeTasks API 监控进程守护程序的运行状况。

对于非关键进程守护程序,Amazon ECS 会在进程守护程序任务未运行时使实例保持活动状态。以下字段会报告处于该状态的实例数量:

  • DescribeDaemon 将返回每个容量提供程序的 withoutDaemonCount,并为所有容量提供程序返回该修订的 totalWithoutDaemonCount。

  • DescribeDaemonDeployments 将返回每个容量提供程序的 withoutDaemonInstanceCount,并为所有容量提供程序返回该修订的 totalWithoutDaemonInstanceCount。

注意

不含进程守护程序的计数与正在运行的计数相互独立。DescribeDaemon 会报告 runningCount 和 totalRunningCount。DescribeDaemonDeployments 会报告 runningInstanceCount 和 totalRunningInstanceCount。一个实例只会出现在其中一组计数,绝不会同时出现这两组计数,因此请勿将这两组的值相加。