> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Why does the autoscaler remove Nodes that are still running my workload?

The Kubernetes Cluster Autoscaler decides that a Node is unneeded using its own utilization-based logic. It does not consult CoreWeave's `CWActive` Node condition or the Node Pool `scaleDownStrategy`. Those govern scale-down driven by the NodePool Operator when you lower `targetNodes` directly, not the autoscaler. As a result, if a Node becomes underutilized for the configured period while it is still active, the Cluster Autoscaler can determine that the Node is unneeded and mark it for removal.

To prevent workload disruption, use one of the following annotations:

* To prevent the autoscaler from evicting a Pod, annotate the Pod with `cluster-autoscaler.kubernetes.io/safe-to-evict: "false"`.
* To prevent the autoscaler from marking a Node for removal, annotate the Node with `cluster-autoscaler.kubernetes.io/scale-down-disabled: "true"`.

For full details, see [Node utilization](/products/cks/nodes/autoscaling#node-utilization) in the autoscaling documentation.

***

<Badge stroke shape="pill" color="blue" size="md">[Nodes](/support/cks/tags/nodes)</Badge><Badge stroke shape="pill" color="blue" size="md">[Workload Scheduling](/support/cks/tags/workload-scheduling)</Badge>
