NodeClaim lifecycle
Each NodeClaim progresses through four phases:Launched
Karpenter finds the new NodeClaim and calls the cloud provider API to create an instance. If the API returns an unrecoverable error (such as
InsufficientCapacityError), Karpenter deletes the NodeClaim, marks that instance type as temporarily unavailable, and creates another NodeClaim if necessary.Registered
Karpenter watches for the instance to register itself as a Kubernetes node and updates the node’s labels, annotations, taints, owner references, and finalizer to match the NodePool and NodeClaim spec. Karpenter removes the
karpenter.sh/unregistered taint once registration is complete.If registration doesn’t complete within 15 minutes, Karpenter deletes the NodeClaim and underlying instance.Initialized
Karpenter watches the node until it becomes ready, all startup taints are removed, and all requested resources are registered.
How Karpenter creates NodeClaims
-
Watches for provisionable pods — monitors pending pods and checks their scheduling constraints and resource requests against available NodePools and NodeClasses.
-
Computes NodeClaim shape — determines the right instance type and size to fit the set of pods.
-
Creates the NodeClaim object — commits the NodeClaim to the cluster.
- Launches the instance — translates the NodeClaim into a cloud provider API call.
- Registers and initializes — waits for the node to join the cluster and become ready.
Inspecting NodeClaims
List all NodeClaims and their linked nodes:NodeClaim example
The following is an example of a NodeClaim in a running cluster.Status conditions
| Condition | Description |
|---|---|
Launched | The cloud provider instance was successfully created |
Registered | The node registered with the Kubernetes API server |
Initialized | The node is ready and all resources are available |
Ready | The NodeClaim is fully operational |
Consolidatable | The node is eligible for consolidation |
Drifted | The node has drifted from its NodePool or EC2NodeClass spec |
NotReady, check the NodeClaim conditions to determine which phase failed. Karpenter also emits logs at each lifecycle stage to aid troubleshooting.