EKS 使用 Karpenter 进行垂直缩放

问题描述 投票:0回答:2

我正在评估 Karpenter (https://karpenter.sh/),我想知道是否有一种方法可以垂直缩小具有很少 pod 的大型节点。唯一的扩展操作似乎是由不可调度的 Pod 或空节点触发的。

场景:我调度了 5 Pod,调度程序给了我一个

c5d.2xlarge
实例,这导致了 65% 利用率(不错)。我杀死了 3 pod,利用率如预期下降到 25%。我等了几个小时,看看优化过程是否会启动,但是……什么也没有(超过20小时)。该功能没有很好的记录,事实上,它的唯一参考是在这篇独立文章中:https://blog.sivamuthukumar.com/karpenter-scaling-nodes-seamless-in-aws-eks

它是如何工作的?

  1. 观察未调度 Pod 的 Pod 资源请求
  2. 直接提供节点的Just-in-time容量。 (无组节点 自动缩放)
  3. 如果节点过时则终止
  4. 重新分配节点中的 Pod 以更好地利用资源

我错过了什么吗?有没有办法使用 Karpenter 或其他解决方案来做到这一点? TIA

amazon-web-services kubernetes amazon-eks autoscaling karpenter
2个回答
1
投票

因此,Karpenter 的 Github 项目上有一个解决此特定问题的功能请求:https://github.com/aws/karpenter/issues/1091。一旦有解决方案,我将更新此答案。

项目团队建议的解决方法是在节点上设置较短的 TTL(例如1 天),迫使 Karpenter 每天评估优化。


0
投票

从 karpenter 1.0 开始,如果替换节点有足够的资源,则支持替换为更便宜的节点。您可以参考https://karpenter.sh/docs/concepts/disruption/#consolidation了解更多详情。

但是,请注意,如果您想为现货实例启用该功能,则需要启用功能标志

SpotToSpotConsolidation

© www.soinside.com 2019 - 2024. All rights reserved.