高级自动缩放可帮助公司将 AWS 成本降低 70%。

下一代 Kubernetes 自动伸缩技术和工具使组织能够在其云基础设施中实现大量成本节约。Svetlana Burninova 最近使用 Karpenter 构建了一个多架构 EKS 集群,在降低成本 70%的同时还提高了性能。

Hackernoon 上的一篇文章中,Burninova 解释了她的技术如何将 pod 调度延迟从三分钟降低到 20 秒。

切换到使用约 70%的 spot 实例的 Karpenter 后,我们的每月计算成本下降了 70%。这是一个显著的减少,为新功能和基础设施改进释放了大量预算。

Burninova 的实现涉及用Karpenter替换传统的 Kubernetes 集群自动伸缩器,并转向具有 AMD64 和 ARM64 实例的多架构设置。这一变化还导致了更好的资源利用率,Karpenter 的合适大小功能帮助将固定节点上的 CPU 利用率从平均 25%提高到 70%。

云优化平台 nOps 也写了关于使用 Karpenter 进行自动伸缩的好处。在他们网站上的一篇帖子中,他们解释说 Karpenter 充当“一个开源、灵活且高性能的 Kubernetes 集群自动伸缩器,提供高级调度和扩展功能”。与使用固定节点组运行的传统集群自动伸缩器不同,Karpenter 检查待处理的 pod 并提供最具成本效益的实例以满足特定的资源要求。Karpenter 最近还发布了 1.0 版本,这是一个里程碑,包括更好的稳定性以及用于中断预算和节点整合的新功能。

我们正在运行一个更具弹性、成本效益更高且能智能扩展的基础设施。仅节省的大量成本就在第一个月内支付了我在这次迁移上花费的工程时间。

Burninova 的成本优化来自两个主要策略:价格优化和效率优化。价格优化涉及通过 AWS 定价模型最大化折扣,包括预留实例、储蓄计划和 spot 实例,这些可以提供高达 90%的折扣,但会增加两分钟终止通知的风险。效率优化侧重于通过更好的资源利用率和更精细的扩展决策来减少浪费。

Burninova 的 EKS 架构/filters:no_upscale()/news/2025/08/autoscaling-karpenter-automode/en/resources/1Screenshot%20From%202025-08-31%2022-23-01-1756675568255.png)

将一些工作负载迁移到ARM64 Graviton 实例,与同等的 x86 实例相比,成本节省了约 20%,并且还显示出性能提升,例如图像处理服务在 Graviton 硬件上运行速度提高了 15%。然而,Burninova 指出,进行此更改需要仔细检查应用程序兼容性,并且节点池需要正确配置适当的污点,以防止不兼容的工作负载被调度到 ARM64 节点上。

AWS 最近在该领域引入了另一项进展,即 2024 年 11 月推出的Amazon EKS Auto Mode。在一篇给 AWS 社区构建者的帖子中,开发者 Rodrigo Fernandes 将 EKS Auto Mode 描述为 Karpenter 的简化自然演进。Fernandes 继续解释 EKS Auto Mode 如何通过根据 pod 需求自动配置和删除节点来抽象基础设施管理,而不是传统的 CPU 和内存指标。

带有 EKS Auto Mode 的共享责任模型/filters:no_upscale()/news/2025/08/autoscaling-karpenter-automode/en/resources/1eksautosrm-1756675568255.png)

Auto Mode 试图通过根据待处理的 pod 智能扩展集群、优化 spot 实例使用并消除空闲节点来提高成本效率。它通过考虑 pod 资源要求、实例定价、可用区分布和架构兼容性来实现这一点。Fernandes 表示,早期实施已将管理时间减少了高达 80%,并节省了 60 - 70%的基础设施费用。然而,对于需要使用自定义 AMI、GPU 实例等专用硬件或合规环境的精细配置控制的组织,存在一些限制。

这些工具带来的额外复杂性带来了可观察性和安全性方面的额外责任,Fernandes 鼓励工程师关注节点创建和终止率、pod 调度效率和节点利用率百分比等指标。诸如Kubecost之类的工具可以提供每个命名空间的成本详细可见性,以及 spot 与按需比率的效果。最佳安全实践包括使用IAM Roles for Service Accounts (IRSA)来消除硬编码凭据,为资源发现正确标记子网,以及仔细配置中断预算以在扩展事件期间保持应用程序可用性。

这里详细介绍的所有方法旨在减少过度配置的资源和对扩展需求的缓慢响应。现代工具使工程师能够为其工作负载近乎即时地提供最佳类型的资源。然而,这确实需要仔细规划、正确配置资源请求和限制的应用程序,以及持续监控。

阅读 192
0 条评论