
下一代 Kubernetes 自动扩展技术与工具正在帮助组织节省大量的云基础设施成本。最近,Svetlana Burninova 使用 Karpenter 构建了一个多架构 EKS 集群,在提高性能的同时节省了 70% 的成本。
在 Hackernoon 的一篇文章中,Burninova 解释了她的技术如何将 Pod 调度延迟从三分钟减少到 20 秒。
在将约 70% 的实例切换至 Karpenter 后,我们的月度计算成本下降了 70%。这一显著的降幅为新功能开发和基础设施升级释放了可观的预算。
Burninova 的实现包括用 Karpenter 替换传统的 Kubernetes 集群自动扩展器,并转向采用 AMD64 和 ARM64 实例的多架构设置。这一变化提升了资源利用率,Karpenter 的精确配置能力帮助将 CPU 利用率从固定节点的平均 25% 提高到 70%。
云优化平台 nOps 也在一篇博文中探讨了使用 Karpenter 进行自动扩展的好处。他们解释说, Karpenter 是一个“开源、灵活、高性能的 Kubernetes 集群自动扩展器,提供了高级的调度和扩展能力”。与传统集群自动扩展器使用固定的节点组操作不同,Karpenter 会检查待处理的 Pod 并提供最具成本效益的实例以满足特定的资源需求。最近,Karpenter 发布了 1.0 版本,这是一个里程碑,提供了更好的稳定性,并引入了新的中断预算和节点合并功能。
我们运行的基础设施更具弹性和成本效益,并且能够智能扩展。仅第一个月节省下来大量成本就抵消了我在这个迁移上花费的工程时间。
Burninova 的成本优化主要来自两个策略:价格优化和效率优化。价格优化是通过 AWS 定价模型最大化折扣,包括预留实例、节省计划和竞价实例,这些可以提供高达 90% 的折扣,不过增加了两分钟终止通知的风险。效率优化侧重于通过更好的资源利用率和更细粒度的扩缩决策来减少浪费。

将一些工作负载转移到 ARM64 Graviton 实例上,与等效的 x86 实例相比节省了大约 20% 的成本,并且也显示出了性能提升,一个示例图像处理服务在 Graviton 硬件上的运行速度提高了 15%。然而,Burninova 指出,这项更改需要仔细检查应用程序的兼容性,并且需通过适当的 taints 标记正确配置节点池,以防止不兼容的工作负载被调度到 ARM64 节点上。
最近,借助 2024 年 11 月推出的 Amazon EKS Auto Mode,亚马逊云科技实现了这个领域的又一次技术进化 。在一篇面向 AWS 社区构建者的文章中,开发人员 Rodrigo Fernandes 将 EKS Auto Mode 描述为 Karpenter 的一个简单的自然演进。Fernandes 接着解释了 EKS Auto Mode 如何抽象基础设施管理。它根据 Pod 需求自动配置和移除节点,而不是根据传统的 CPU 和内存指标。

Auto Mode 设法优化了成本,其措施包括根据待处理的 Pod 智能扩展集群、优化竞价实例使用率以及消除闲置节点。在这样做时,它综合考虑了 Pod 资源需求、实例定价、可用区分布及架构兼容性。Fernandes 指出,早期实现已经将管理时间缩减了高达 80%,基础设施支出节省了 60% 到 70%。但对于需要使用自定义 AMI、专用硬件(如 GPU 实例)或精细控制合规环境配置的企业,该模式仍存在一定的局限性。
这些工具带来了额外的复杂性,在可观测性和安全性方面需要做一些配套的工作,Fernandes 鼓励工程师关注诸如节点创建和终止率、Pod 调度效率和节点利用率等指标。像 Kubecost 这样的工具可以可视化命名空间级成本的详情,以及竞价与按需比的有效性。最佳安全实践包括:采用服务账户的IAM角色(IRSA)来消除硬编码凭证、通过子网标签实现资源精准发现,以及准确配置中断预算以确保应用程序在扩展期间持续可用。
这里详细说明的所有方法都旨在减少过度配置的资源,加速对扩展需求的响应。现代工具使工程师能够近乎即时地为其工作负载配置最佳类型的资源。但这需要周密的规划、针对资源请求和限制的合理的应用程序配置,以及持续的监控。
声明:本文为 InfoQ 翻译,未经许可禁止转载。
原文链接:
https://www.infoq.com/news/2025/08/autoscaling-karpenter-automode/
评论