云成本直降60%!Karpenter+Spot实例在QA环境的实战优化

01/引言

在云计算领域,尤其是在像 QA(Quality Assurance)这样并非生产环境的场景中,基础设施的成本管理始终是一个挑战。

我们的 QA 环境对测试的稳定性要求较高,但我们注意到,大量基础设施成本都花在了 EC2 按需实例上。经过深入调研,我们决定在 QA 环境中引入 Karpenter,并结合 Spot 实例与中断处理器进行优化。

本文将介绍我们在保证应用可靠性的前提下,从最初的架构出发、一路成功实现云支出大幅缩减的实践过程。

02/现有架构:引入 Karpenter 之前

在最初的设置中,我们为 QA 工作负载主要混合使用 EC2 按需实例。

这些工作负载经常需要扩缩容,以满足性能测试、集成测试和压力测试的需求,从而导致实例数量不断增加。

问题在于:按需实例的成本相当高。

  • 实例类型m5.largec5.xlarge

  • 平均实例数量:50 个按需实例(m5.largec5.xlarge混合)

  • 单个实例成本m5.large 约为 $0.096/小时,c5.xlarge 约为 $0.192/小时

  • 每日运行时间:每天 12 小时(QA 工作负载并非 7x24 小时)

  • 每月总成本:约 $4,500(两个实例类型合计)

这一设置虽然具备良好的稳定性,但成本较高。

通过进一步分析资源利用率,我们发现 QA 环境实际上能够容忍一定程度的中断,而不会对整体测试流程造成实质性影响。

03/挑战:成本与可靠性的平衡

虽然 Spot 实例相比按需实例最多可以节省约 90% 的成本,但当 AWS 需要回收容量时,只需提前2分钟通知,就可以终止这些实例。

PS:CloudPilot AI可提前 120 分钟发出中断通知

对于生产环境而言,这种不确定性可能会带来不可接受的风险;但在 QA 环境中,只要系统能够平稳恢复,我们是可以接受一定程度的中断的。

我们的目标是将 QA 实例切换为 Spot 实例的同时,确保:

  • 关键测试任务不中断

  • 当 Spot 实例被回收时,系统能够平滑切换,保障测试流程连续性

04/解决方案:借助 Karpenter 实现对 Spot 实例的智能调度

我们选择了 Karpenter 作为解决方案。

Karpenter 是一款开源的 Kubernetes 集群自动扩缩容工具,能够根据实时的工作负载需求动态地即时调度和创建节点。

它与 AWS Spot 实例高度兼容,旨在以灵活、高性能和简洁的方式实现节点的弹性扩展,可以在 Spot 实例被终止后自动替换节点,从而确保集群的健康性和服务的连续性。

05/实施步骤

  1. 配置 Karpenter
  • 设定规则优先为 QA 工作负载分配 Spot 实例

  • 根据应用特性限制 Spot 实例类型(如 m5.largec5.xlarge

  1. 中断处理机制
  • 在集群中配置了 AWS Node Termination Handler(提前2分钟通知中断)
  • 当 Spot 实例被回收时,优雅排空 Pod,避免短时测试任务意外中断
  1. 按需实例回退机制
  • 若 Spot 实例容量不足,Karpenter 自动切换至按需实例(On-Demand)
  • 确保关键测试阶段的高可用性

不过,值得注意的是,Karpenter 无法预测 Spot 实例的中断事件。

最近,CloudPilot AI 上线了新一代「Spot中断预测引擎」,通过主动驱逐高中断率实例以及选择低中断率实例,将 Spot 中断事件降低了90%!

目前该功能只面向客户开放,后台回复关键词【演示】,即可预约1对1技术交流。
目前该功能只面向客户开放,后台回复关键词【演示】,即可预约1对1技术交流。

06/引入 Karpenter 前后对比

为了验证 Karpenter + Spot 实例方案的成效,我们对部署前后的成本进行了为期 30 天的对比分析。

引入 Karpenter 之前(全部使用按需实例):

  • 每日成本:

m5.large:30 台 × $0.096/小时 × 12 小时 = $34.56/天
c5.xlarge:20 台 × $0.192/小时 × 12 小时 = $46.08/天

  • 每日总计: $80.64
  • 月度成本估算(按 30 天计):$80.64 × 30 = $2,419.20/月

Karpenter 实施后(Spot 实例 + 按需回退):

在切换至 Spot 实例后,我们实现了 90% 的 Spot 实例使用率,仅在 Spot 实例被 AWS 回收时才使用按需实例。

以下是优化后的成本详情:

Spot 实例:

  • Spot 占比: 90%(每日约 45 台)
  • Spot 单价(平均便宜约 70%):m5.large:$0.0288/小时;c5.xlarge:$0.0576/小时
  • 每日 Spot 成本:

m5.large:25 台 × $0.0288 × 12 小时 = $8.64/天
c5.xlarge:20 台 × $0.0576 × 12 小时 = $13.82/天
总计: $22.46/天

  • 月度 Spot 成本: $22.46 × 30 = $673.80/月

按需实例使用情况:

  • 占比: 10%(约 5 台/天)
  • 每日按需成本:$8.06/天
  • 月度按需成本: $8.06 × 30 = $241.80/月

最终月度总成本(Spot + 按需):$673.80 + $241.80 = $915.60

如果您需要一键查询 Spot 实例的实时价格、各AZ的中断率以及相较于按需实例的折扣比例,欢迎访问 Spot Insights(spot.cloudpilot.ai)。

在这里插入图片描述

07/成果:显著降本,测试零中断

成本对比

  • Karpenter 实施前成本:$2,419.20 / 月
  • Karpenter 实施后成本:$915.60 / 月
  • 成本降低幅度:约 62% 节省(每月节省 $1,503.60)

更重要的是,在整个降本过程中,我们的测试流程未受到任何中断。

得益于 Karpenter 的智能节点配备机制以及 AWS Node Termination Handler 对 Pod 优雅排空处理,即使 Spot 实例频繁被回收,我们的 QA 应用依然保持稳定运行,顺利完成了各类测试任务。

关键结论

  1. 💰 显著降低成本: 通过在 QA 环境中大规模使用 Spot 实例,我们成功将云基础设施成本降低了 60% 以上。

  2. ✅ 业务零宕机: 结合使用 Karpenter 与 AWS Node Termination Handler,我们的系统对 Spot 实例的中断具备了良好的容错能力,保证了关键测试任务的连续性与可靠性。

  3. 📈 弹性伸缩能力: Karpenter 能根据工作负载的实时变化进行动态扩缩容,实现按需付费。

  4. 🔄 自动回退策略: 当 Spot 容量不足时,系统自动回退使用按需实例,确保在关键测试阶段的高可用性与连续交付能力。

推荐阅读

KubeCon EU 2025:一个非典型参与者的现场观察

「出海匠」借助CloudPilot AI实现AWS降本60%,支撑AI电商高速增长

月活过亿的Canva如何在PB级数据存储上节省2700万?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值