Amazon ECS 托管实例修补
在 Amazon ECS 托管实例中,修补是一个关键的维护过程,AWS 会自动管理和更新托管容器实例上的软件,以确保安全性和合规性,同时通过受控的可配置流程保持工作负载可用性。
实例生命周期
默认情况下,Amazon ECS 托管容器实例在标准化的 14-21 天生命周期内运行。Amazon ECS 在实例启动后的第 14 天发起正常工作负载耗尽,最终终止不迟于第 21 天。在特定情况下,Amazon ECS 支持提前耗尽:
-
检测软件上的安全漏洞
-
硬件运行状况恶化
-
为了遵循客户配置的事件窗口
这种方法既能保持系统合规性,又能遵循客户定义的维护要求。
事件窗口和维护计划
AWS 通过自动后台进程来管理托管容器实例的生命周期,这些进程会监控节点的创建时间戳和维护计划。实例启动后,AWS 会设置默认 14 天耗尽计划,并评估任何客户配置的事件窗口。
您可以通过配置事件窗口来安排 Amazon ECS 托管实例的维护活动。您可以使用实例 ID 或实例标签将一个或多个 Amazon ECS 托管实例与事件窗口关联起来。当事件窗口标记有特定值时,Amazon ECS 会将这些标签映射到相应集群的相应 Amazon ECS 托管实例,并尽最大努力在定义的时间段内安排实例维护。
有关事件窗口的更多信息,请参阅《Amazon EC2 用户指南》中的为会影响 Amazon EC2 实例的计划事件创建自定义事件窗口。
如果存在事件窗口,则 AWS 会调整耗尽计划,使其与这些窗口保持一致,这可能会导致耗尽时间早于默认 14 天时间段,以遵循指定的事件窗口。事件窗口修改仅影响新启动的托管容器实例,从而确保可预测的维护计划。
在计划的耗尽时间之前,Amazon ECS 会根据客户的配置继续对托管容器实例进行正常任务放置操作。
维护序列
在指定的维护时间,Amazon ECS 通过调用 UpdateContainerInstancesState API 来开始维护序列,从而发起正常工作负载耗尽。在正常终止期间,Amazon ECS 会尝试停止标记为耗尽的实例上的工作负载。
Amazon ECS 对服务任务采用先启动后停止策略(或根据 Amazon ECS 服务配置),确保在停止现有任务之前启动替换任务,从而最大限度地减少服务中断。在整个过程中,Amazon ECS 服务会遵循所有服务部署配置,同时继续耗尽尝试次数,直到实例启动后的第 21 天。
如果到第 21 天仍未完成耗尽,Amazon ECS 将执行 DeregisterContainerInstance API 来停止托管容器实例及其剩余工作负载,以保持合规性,并使用最新软件对托管实例进行修补。