<p>I have a EKS cluster and different nodes are marked for DeletionCandidateOfClusterAutoscaler and later deleted with ToBeDeletedByClusterAutoscaler.</p>
<p>When checking in the cluster-autoscaler logs it seems the cluster has received a scale-down input.</p>
<blockquote>
<p>[1 scale_down.go:443] Node XXXX is not suitable for removal - cpu utilization too big (0.570164)</p>
</blockquote>
<blockquote>
<p>[1 scale_down.go:443] Node XXXX is not suitable for removal - cpu utilization too big (0.823009)</p>
</blockquote>
<blockquote>
<p>[1 scale_down.go:443] Node XXXX is not suitable for removal - memory utilization too big (0.951696)</p>
</blockquote>
<blockquote>
<p>[1 scale_down.go:443] Node XXXX is not suitable for removal - cpu utilization too big (0.595449)</p>
</blockquote>
<blockquote>
<p>[1 scale_down.go:443] Node XXXX - cpu utilization 0.154814</p>
</blockquote>
<p><strong>How to understand what is the trigger of such a scale-down event?</strong></p>
<p>In the autoscaling-groups events section in AWS nothing is there and I haven't changed the desired number of nodes. No policy is set. The desired and the actual state match</p>

Cr4zyTun4
<p>From the <a href="https://docs.aws.amazon.com/eks/latest/userguide/autoscaling.html" rel="nofollow noreferrer">EKS documentation</a>:</p>
<blockquote>
<p>The Kubernetes Cluster Autoscaler automatically adjusts the number of nodes in your cluster when pods fail or are rescheduled onto other nodes.</p>
</blockquote>
<p>Basically, when the Cluster Autoscaler:</p>
<ul>
<li>evaluate that one or more nodes are underused</li>
<li>there are free resources on the other nodes</li>
<li>some pods can be moved from underused nodes to another node (compatibly with pods resource requirements)</li>
</ul>
<p>in this case, it drains the underused nodes and removes them.<br />
You can customize the threshold with the argument <code>scale-down-utilization-threshold</code> or even disable the scale down with <code>scale-down-enabled: false</code></p>
