在Amazon EKS中,在中断时挂起闲置的Spot Instances。

0

【以下的问题经过翻译处理】 一家SaaS提供商提供了一项服务,使客户能够启动长时间运行的作业。这些作业被放置在容器中,并使用EKS部署到EC2 Spot实例上。该提供商不想在Spot实例终止时终止作业并从头重新开始,而是保持其状态并使用休眠在新的Spot实例上恢复它所留下的位置。

我们有没有这方面的工作示例?我预见到的挑战与配置K8s有关,以不替换休眠的Spot实例或其容器,因为我们想要继续它们。同时,需要处理任何与在恢复的EC2实例上运行的K8s进程相关的副作用。我怀疑一个外部系统将需要关注作业完成,并相应地终止节点。因此,K8s仅关注创建新的Spot节点并放置新的作业,而不恢复或替换失败的节点。

profile picture
专家
已提问 5 个月前27 查看次数
1 回答
0

【以下的回答经过翻译处理】 Kubernetes中没有内置的挂起/恢复Pod的设施。希望在Spot实例上处理长时间运行的任务的客户应确保其应用程序使用某种持久存储(如EBS、EFS或S3)执行检查点操作。当Pod重新调度时,它可以恢复其检查点状态并恢复处理。

即使对于非Spot工作负载,考虑到可靠性构建是一个好主意,因为硬件可能会失效。

最后,值得一提的是,通过遵循Spot最佳实践,他们可以以方式配置其节点组,从而最小化他们具有的Spot中断的数量。这可以通过在其EC2自动缩放组中添加多个实例类型并使用容量优化的分配策略来完成。如果他们正在使用带有Spot实例的EKS托管节点组,那么这已经在开箱即用中配置好了。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则