<p>I'm evaluating Karpenter (<a href="https://karpenter.sh/" rel="nofollow noreferrer">https://karpenter.sh/</a>) and I wanted to know if there's a way to vertically scale down a large node with few pods. The only scaling actions seem to be triggered by either unschedulable pods or empty nodes.</p>
<p>Scenario: I scheduled <strong>5</strong> pods and the scheduler gave me one <code>c5d.2xlarge</code> instance, and that resulted in a <strong>65%</strong> utilization (not bad). I killed <strong>3</strong> pods and utilization dropped as expected to <strong>25%</strong>. I waited for a few hours to see if an optimization process would kick in but .. nothing (over <strong>20</strong> hours). The feature is not well documented, in fact the only reference of it is in this independent article: <a href="https://blog.sivamuthukumar.com/karpenter-scaling-nodes-seamlessly-in-aws-eks" rel="nofollow noreferrer">https://blog.sivamuthukumar.com/karpenter-scaling-nodes-seamlessly-in-aws-eks</a></p>
<blockquote>
<p>How does it work?</p>
<ol>
<li>Observes the pod resource requests of unscheduled pods</li>
<li>Direct provision of Just-in-time capacity of the node. (Groupless Node
Autoscaling)</li>
<li>Terminating nodes if outdated</li>
<li>Reallocating the pods in nodes for better resource utilization</li>
</ol>
</blockquote>
<p>Am I missing something? Is there a way to do this, using Karpenter or another solution? TIA</p>

peter n
<p>So there's a feature request on Karpenter's Github project addressing this specific issue: <a href="https://github.com/aws/karpenter/issues/1091" rel="nofollow noreferrer">https://github.com/aws/karpenter/issues/1091</a>. I'll update this answer once a solution is available.</p>
<p>The workaround suggested by the project team, was to set a short TTL on the nodes (like <strong>1 day</strong>), forcing Karpenter to evaluate optimization daily.</p>
