Amazon ECS 托管进程守护程序
Amazon ECS 托管进程守护程序使您能够将安全、可观测性和网络代理等软件代理部署到 Amazon ECS 托管实例上的容器基础设施中并对其进行管理。托管进程守护程序将进程守护程序的生命周期管理与应用程序操作分离开来。您可以独立地部署、更新和监控代理,无需重新部署工作负载,也无需协调不同服务之间的更改。
进程守护程序重要性
可以根据进程守护程序故障是否应导致 Amazon ECS 耗尽容器实例,将每个托管式进程守护程序配置为关键或非关键。
-
关键:默认设置。在将应用程序任务放置到实例上之前,Amazon ECS 会首先启动进程守护程序任务;如果进程守护程序任务停止或运行不正常,Amazon ECS 会将其耗尽并替换容器实例。
-
非关键:将
critical参数设置为false。进程守护程序任务的运行与容器实例的运行状况无关。如果非关键进程守护程序任务失败、停止或运行不正常,Amazon ECS 会使容器实例保持活动状态。现有应用程序任务会继续运行,Amazon ECS 也会持续在该实例上放置新的应用程序任务。非关键进程守护程序永远不会阻止实例注册,因此即使进程守护程序启动失败,也可以立即放置应用程序任务。
托管进程守护程序的工作原理
要使用托管进程守护程序,请先注册进程守护程序任务定义。进程守护程序任务定义是一种模板,用于描述构成进程守护程序的容器。注册进程守护程序任务定义后,创建一个进程守护程序并将其与集群和一个或多个 Amazon ECS 托管实例容量提供程序相关联。然后,Amazon ECS 确保在通过这些容量提供程序所预置的每个 Amazon EC2 实例上,仅运行一个进程守护程序任务。
进程守护程序不会独立启动实例。在 Amazon ECS 托管实例容量提供程序上运行应用程序任务时,Amazon ECS 会预置一个 Amazon EC2 实例,启动进程守护程序任务,然后才会将应用程序任务状态变换为 RUNNING。无论属于哪种重要性级别,Amazon ECS 均会按此顺序处理每个进程守护程序,以确保在应用程序开始处理请求之前,日志记录、追踪和指标收集等横切功能已正常运行。
重要性用于控制 Amazon ECS 在进程守护程序任务未能启动或在启动后停止时的行为。对于关键进程守护程序,启动失败的任务会阻止实例进入活动状态。若任务在实例处于活动状态后停止或运行不正常,Amazon ECS 将会耗尽并替换该实例。这种自动修复行为可保持可靠的进程守护程序覆盖,无需人工干预。
非关键进程守护程序不会阻止实例,也不会触发耗尽操作。即使进程守护程序任务启动失败,实例也会进入活动状态;若进程守护程序任务随后停止或运行不正常,实例也将保持活动状态。您的应用程序任务会保持运行,Amazon ECS 也会继续在该实例上放置新的应用程序任务。
当您将进程守护程序更新为新的任务定义修订版时,Amazon ECS 会针对关联的容量提供程序中的所有实例执行滚动部署操作。在部署过程中,Amazon ECS 会同时耗尽一定比例的实例(释放比例可配置),并为替换实例预置更新后的进程守护程序,同时还会自动替换您的 Amazon ECS 服务任务。Amazon ECS 提供内置的断路器保护。您可以配置烘焙时间以及 CloudWatch 警报,以便 Amazon ECS 在更新所有实例后对部署进行监控,并在出现问题时自动进行回滚操作。无论是关键进程守护程序还是非关键进程守护程序,当进程守护程序任务启动失败时,Amazon ECS 都会发出 EventBridge 事件并记录服务操作日志。
主要优势
-
分离的生命周期管理:使进程守护程序能够独立于应用程序部署进行更新。
-
保证覆盖:Amazon ECS 会在每个实例上优先于应用程序任务启动进程守护程序任务,从而确保横切功能在应用程序开始处理请求之前已正常运行。对于关键进程守护程序,启动失败的进程守护程序任务同样会阻止实例完成注册,确保实例永远不会在没有进程守护程序的情况下处理应用程序任务。
-
可靠的版本更新:当您更新进程守护程序版本时,Amazon ECS 会在关联容量提供程序的所有实例中推出该版本,并具有内置断路器保护和自动回滚功能,以确保每个实例都运行目标修订版。
-
资源利用率提高:每个实例仅运行一个进程守护程序任务,从而摒弃了每个任务都需要一个附属进程的模式,降低了整个集群的资源消耗。
-
自动实例修复:对于关键进程守护程序,如果进程守护程序任务停止或运行不正常,Amazon ECS 会自动耗尽并替换该容器实例。这能在无需人工干预的情况下维持可靠的进程守护程序覆盖。
-
工作负载连续性:即使进程守护程序任务失败、停止或运行不正常,非关键守护程序也会保持应用程序工作负载继续不间断运行。
注意
Amazon ECS 为 Amazon ECS 启动类型的 Amazon ECS 服务提供了进程守护程序调度策略。托管进程守护程序是专为 Amazon ECS 托管实例构建的一项新功能,旨在简化进程守护程序部署并提供更强的进程守护程序覆盖保障。
开始使用
要开始使用,请先注册一个进程守护程序任务定义,指定您的容器映像,然后在您的集群中创建一个具有关联容量提供程序的进程守护程序。您可以使用 AWS 管理控制台、AWS CLI、CloudFormation 或 AWS SDK。如需分步指导,请参阅 创建和管理进程守护程序。