ITPub博客

首页 > 云计算 > 公有云实践 > EKS用Karpenter和EC2 Spot高效运行负载

EKS用Karpenter和EC2 Spot高效运行负载

公有云实践 作者:出海新观点 时间:2025-07-03 23:14:49 0 删除 编辑


导读

本节介绍Karpenter如何帮助您降低Kubernetes集群的复杂性并提高效率。探讨如何利用Amazon EC2 Spot实例作为购买选项,并了解基于亚马逊云科技 Graviton的Amazon EC2实例如何在提高可持续性的同时进一步优化您的工作负载。

演讲精华

以下是小编为您整理的本次演讲的精华。

亚马逊云科技 re:Invent 2024年会议由亚马逊云科技初创公司专家高级经理Mike Dukes主持,他热情欢迎与会者。他介绍了自己,并解释说亚马逊云科技客户可以通过与他们的账户团队互动,获得跨数据库、网络、容器和无服务器等各个领域和产品的专家支持。

Mike身边是来自Monzo的Miles Bryant,他分享了Monzo在Kubernetes领域的发展历程,以及他们如何利用EC2 Spot、Karpenter和EKS进行优化。本次会议的议程包括在亚马逊云科技上运行计算高效的工作负载,重点关注容器,以及Monzo的发展历程。

第一部分深入探讨了运行计算高效工作负载的细节。亚马逊云科技拥有超过800种不同的实例类型,精心设计以满足各种计算类别的几乎任何工作负载需求。这些类别包括通用、可突发、内存密集型和计算密集型。每种实例类型都具有独特的功能,如大小、网络要求、内存容量和CPU处理器(可以是英特尔、AMD或亚马逊云科技 Graviton)。

EC2的核心是一项卓越的定制硅创新:Nitro,这是一种轻量级虚拟机管理程序,将安全性、存储和网络等关键组件外部化。这种创新方法使亚马逊云科技能够提供大量实例类型,满足各种工作负载需求。此外,亚马逊云科技 Graviton芯片针对云工作负载进行了优化,价格性能比率提高了高达40%,能耗降低了60%,相比同类EC2实例有显著优势。

利用亚马逊云科技的空闲容量,EC2 Spot实例可提供高达90%的折扣,对于容器工作负载通常在65%到68%之间。但需要注意的是,Spot实例是可中断的。因此,利用EC2 Spot的工作负载必须是无状态的、容错的和灵活的。亚马逊云科技已将Spot无缝集成到其产品中,包括EKS、ECS和Fargate。

Karpenter是一种强大的工具,可开箱即用地轻松利用EC2 Spot和Graviton,熟练处理Spot中断、跨实例类型进行分散,并提供Graviton基础设施。客户可以同时利用Spot和Graviton的协同作用,为工作负载创造双赢组合。

为了说明优化之旅,Mike讲述了一位客户希望快速、经济高效地优化EKS的经历。这一旅程包括以下步骤:

1.           识别工作负载:客户的工作负载包括Go和Python应用程序,这些应用程序是容错和无状态的。

2.           建立成本基线:建立成本基线,以衡量后续优化的影响。

3.           实施Karpenter:利用Karpenter的功能优化集群,并启用EC2 Spot和Graviton的集成。

4.           引入EC2 Spot:对于无状态、灵活和容错的工作负载,引入EC2 Spot以利用其节省成本的优势。

5.           采用Graviton:如果工作负载支持ARM64指令集,则采用Graviton以利用其卓越的价格/性能优势。

6.           正确调整Pod需求:在整个优化过程中,努力正确调整Pod需求,因为这些需求将指导Karpenter的基础设施供应决策。

会议的第二部分专门讨论了Monzo的发展历程。Miles Bryant介绍了Monzo,这是一家数字银行,其使命是让银行业务变得简单无忧。Monzo在英国拥有约1000万客户,在美国也有初步布局。从一开始,Monzo就采用了微服务架构,使不同团队能够独立地更改和管理系统的不同方面。

Monzo使用Kubernetes的历史约有8年,最初涉及自托管集群。最近,他们完成了从自托管集群到EKS的全面迁移,将Kubernetes管理的运营复杂性转移给了亚马逊云科技。

2016年,当Monzo还是一家初创公司时,他们在亚马逊云科技上启动了自己的Kubernetes集群,包括大约150个无状态的Go微服务。当时的架构包括一个区域中的单个生产集群,一个用于工作计算的自动伸缩组,使用单一实例类型,大约有300个节点。应用程序是手动扩展的,集群保持静态,这在他们规模较小的运营期间就足够了。

到了2018-2019年,Monzo经历了显著增长,推出了支票账户、透支、贷款和商业银行等新产品。他们通过众筹成功从客户那里筹集了2亿美元。这种增长需要开发更多微服务来支持不断增长的客户群和产品,从而给平台带来了越来越大的负载。因此,需要更多扩展,导致计算资源因闲置CPU周期而浪费。

Monzo最初专注于应用层扩展,首先进行垂直Pod自动缩放以正确调整CPU和内存需求,然后进行水平Pod自动缩放。他们集成了Kubernetes Cluster Autoscaler来处理节点扩展,并将部分计算支出投入Savings Plans以优化成本。

到了2022年,Monzo拥有超过1800个微服务,他们意识到自托管集群已经不堪重负,升级变得越来越痛苦,出现的问题需要内部团队解决。他们做出战略决定,在18个月内迁移到EKS,并行建立新的EKS集群,逐步迁移服务,利用服务网格确保零停机时间。

与EKS迁移同步进行的是,Monzo引入了Karpenter作为Cluster Autoscaler的替代方案。Karpenter实现了应用程序驱动的计算扩展、通过EC2 Spot优化成本,并消除了对多个节点池的需求。他们首先将Cluster Autoscaler节点组迁移到Karpenter节点组,然后随着需求的发展逐步引入更多复杂性。

Monzo现在与Karpenter的架构包括各种实例类型和大小,Karpenter直接供应EC2实例,无需自动伸缩组。这种架构转变使他们能够通过迁移到EC2 Spot进一步优化成本。

Monzo的计算需求是动态的,由用户行为如应用使用或卡支付驱动。他们的负载遵循可预测的日常模式,使Savings Plans不太合适,因为他们要么承诺不足,需要在高峰期使用按需实例(导致成本更高),要么承诺过多,在非高峰期需要为未使用的计算资源付费。EC2 Spot提供了灵活性,可以优化每日高峰期的成本,同时适应Monzo的无状态微服务,这些微服务可以随时无缝关闭。

Monzo采用了逐步推广EC2 Spot的策略,从最不重要的服务层开始。Monzo的每个服务都根据其重要性进行分类,从0级(最关键)到3级(最不重要)。他们开发了一个Kubernetes准入控制器,根据服务层注入Pod拓扑扩展约束,使他们能够为每个层指定在Spot或按需实例上运行Pod的百分比。

Karpenter负责Monzo的每个Spot供应方面,熟练地处理Spot中断、识别更具成本效益的Spot选项、整合和迁移工作负载,以及在Spot容量不可用时无缝使用按需实例。

Monzo的计算支出明细说明了他们从2023年7月依赖Savings Plans和按需实例,到逐步增加Spot使用的发展历程。到2024年1月,他们成功通过利用Spot实例吸收了一个Savings Plans的到期。在EKS迁移结束时,Monzo通过Savings Plans和Spot实例的组合实现了99%的覆盖率。

在整个旅程中,Monzo获得了宝贵的经验和考虑:

•              Karpenter总体上是一个出色的解决方案,尽管有时它缩减速度较慢,需要优化Pod拓扑扩展和Pod中断预算。

•              Karpenter的活跃开发周期需要他们经历几次重大升级,这些升级虽然文档完善,但需要付出努力才能安全地理解和执行。

•              调试Karpenter关于Pod调度和供应错误的决策有时会很有挑战。

•              对于Spot实例,Monzo认识到需要配置足够数量的实例类型以确保分散,监控Spot放置分数和中断率,并解决由于Spot中断而导致的服务终止的观念(这种情况比Karpenter整合的可能性更小)。

展望未来,Monzo的下一步计划包括进一步优化应用程序的正确调整大小、垂直扩展服务,以及研究采用Graviton以获得更好的价格/性能、可持续性优势和增加Spot实例多样性。

Miles分享了他从这次变革性的旅程中获得的主要经验:

1.           观察当前成本并建立基线,以衡量优化的影响。

2.           仔细考虑成本优化工作的预期结果,权衡工程时间和系统复杂性等权衡。

3.           通过渐进式迁移和降低风险的变更来逐步建立信心,从而减轻潜在的中断。

通过采用Spot实例和Karpenter,Monzo实现了额外15%的计算成本节省,同时保持了无缝扩展和最佳资源利用率。他们将继续致力于未来进一步节省成本的机会。

总之,该会议全面探讨了通过战略性利用EC2 Spot、Graviton和Karpenter与EKS相结合,优化亚马逊云科技上的计算工作负载。Monzo的实际经历和经验教训成为了这种优化方法潜在利益和注意事项的生动体现。

我们正处在 Agentic AI 爆发前夜。 2025 亚马逊云科技中国峰会提出,企业要从 " 成本优化 " 转向 " 创新驱动 " ,通过完善的数据战略和 AI 云服务,把握全球化机遇。亚马逊将投入 1000 亿美元在 AI 算力、云基础设施等领域,通过领先的技术实力和帮助“中国企业出海“和”服务中国客户创新“的丰富经验,助力企业在 AI 时代突破。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70038688/viewspace-3089972/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-05-21

  • 博文量
    679
  • 访问量
    565753