Remediation categories
CoreWeave’s health signals fall into two categories:- Solved by reboot: The Node reboots inside your cluster and returns to service. Examples include GPU reset requests and kernel deadlocks.
- Needs triage: The Node leaves your cluster for investigation, repair, preventative maintenance, or vendor return. CKS delivers a replacement Node automatically.
Pending state transitions
CoreWeave uses a pending transition when the issue’s severity is uncertain and interrupting a running workload would be worse than waiting. A pending transition works as follows:- CKS sets the
node.coreweave.cloud/pending-statelabel on the Node to the target state, such asproduction-reboot, and updates thePendingPhaseStateNode condition. The condition’sreasonnames the target state, and itsmessagedescribes what triggered the transition. - CKS cordons the Node so no new workloads schedule onto it, and records the reason,
NLCCPendingExitProduction, in thenode.coreweave.cloud/cordonReasonannotation. See Node cordoning. - The transition waits until the Node is no longer active. While your workloads are still running, the Node emits
CWNCPhasePendingTenantWorkloadRunningevents that name the Pods preventing the transition. - When the Node becomes inactive, the state transition proceeds and the action takes place.
Immediate state transitions
CoreWeave uses an immediate transition when the issue is known to be fatal or to severely degrade performance, such as a confirmed hardware fault or thermal throttling. In these cases, waiting doesn’t protect your workload, because the workload is already failing or running on broken hardware. An immediate transition doesn’t wait for the Node to become idle. The Node leaves theproduction state and CKS begins evicting Pods right away. Pods labeled qos.coreweave.com/graceful-interruptible block the action until they terminate or their terminationGracePeriodSeconds expires; all other Pods are evicted without a waiting period, even if a pending transition would normally wait for them.
Active Nodes and stalled transitions
A pending transition proceeds only when the Node is no longer active. A Node is active when it runs at least one Pod that CKS counts toward the Node’s idle status. In summary:DaemonSetPods never count as active.- Pods with the
qos.coreweave.cloud/interruptablelabel don’t count as active. - Pods with the
qos.coreweave.com/graceful-interruptiblelabel don’t count as active. Before the transition proceeds, CKS evicts these Pods and waits for theirterminationGracePeriodSecondsto pass. See Pod interruption and eviction policies. - Control plane Pods don’t count as active.
- Any other Pod in the
Runningphase counts as active.
CWActive Node condition uses a broader rule for Node Pool scale-down. It also counts Pending Pods, and it counts gracefully interruptible Pods until they finish terminating. See Idle Nodes. As a result, a Node can show CWActive = True while a pending transition proceeds.
Node states in a CKS cluster
Every Node carries anode.coreweave.cloud/state label with its current lifecycle state and, during a pending transition, a node.coreweave.cloud/pending-state label with the target state. The CoreWeave Intelligent CLI shows both in the STATE and PENDING STATE columns of cwic node get. See View Node details.
The states you are most likely to observe on Nodes in your cluster are:
Nodes also pass through Day 1 states such as Zap and Test before they reach production, but those states occur before a Node joins your cluster.
CoreWeave-managed Node conditions, labels, states, and events can change without notice. Don’t use them for your own automation or change them except through documented procedures. These include setting
AdminTemporaryFailure to cordon a Node, requesting a Node reboot, and canceling a pending reboot. You can still add your own custom Node conditions and labels.Example: a pending reboot
The following sequence shows a typical pending reboot, using a GPU reset request as the trigger:- The NVIDIA driver reports that a GPU needs a reset, for example because of a pending memory row remap. CoreWeave monitoring sets the
GPUWantsResetcondition on the Node. - The Node moves to the
production-rebootpending state. The Node emits aCWNCPhaseNccPendingChangeevent that names the condition that triggered the transition, sets thenode.coreweave.cloud/pending-statelabel, and updates thePendingPhaseStatecondition. - CKS cordons the Node. Your existing workloads keep running, and the Node emits
CWNCPhasePendingTenantWorkloadRunningevents while they do. - When the Node becomes inactive, it reboots inside your cluster.
- After the reboot, the Node returns to
productionand CKS uncordons it. An HPC Verification test runs after that, but the Node doesn’t wait for it. The test needs the Node’s GPUs free, so a workload scheduled right away can stop it or prevent it from starting. If the reboot doesn’t complete in time, the Node moves toproduction-reboot-fail.
[NODE-NAME] with the name of your Node.
To follow only the Node’s events as a transition progresses, watch them instead of repeatedly describing the Node:
Triage transitions
When CoreWeave determines that a Node needs investigation rather than a reboot, the Node moves toward thetriage state:
- CoreWeave’s Node lifecycle automation sets a condition such as
NeedsTriageon the Node. The Node receives aNoScheduletaint and is cordoned, so no new workloads schedule onto it. - For a pending triage transition, existing workloads can continue while the Node waits to become idle. If the Node is in the prefill flow, CKS can start draining it when the prefill timeout expires, even if workloads are still running.
- CKS removes the Node from your cluster and returns it to CoreWeave’s fleet for remediation. CoreWeave re-validates the Node before it can return to any production fleet; a Node that needs the full onboarding test suite takes roughly 48 hours to return.
- CKS delivers a replacement Node to your Node Pool automatically. Prefill can deliver the replacement before the old Node leaves.
Prepare your workloads for transitions
How quickly a transition completes depends on how your workloads signal their tolerance for interruption:- Stateless workloads: Apply the
qos.coreweave.cloud/interruptablelabel so CKS excludes the Pods from the Node’s active status. Pending transitions proceed without waiting for these Pods. See Interruptible. - Stateful workloads that need cleanup time: Apply the
qos.coreweave.com/graceful-interruptiblelabel so Node actions wait for the Pod’s fullterminationGracePeriodSeconds, which defaults to 30 seconds; set it longer than your workload’s expected cleanup time. See Gracefully interruptible and Pod termination in the Kubernetes documentation. - Critical jobs: Leave both labels off. CKS treats the Node as active and defers pending transitions until the job completes. This also defers remediation, as described in Long-running GPU Pods.
- Capacity-sensitive Node Pools: Enable Node Pool prefill so replacements arrive before triaged Nodes drain.
See also
- Node lifecycle: The full lifecycle from Day 0 through Day 2+.
- Node cordoning: Common cordon reasons and how to respond.
- Workload scheduling on CKS: Eviction strategies, labels, and taints.
- Reboot Nodes: Request safe or immediate reboots manually.
- Node Pool reference: Node conditions and events set by CKS.