View controller logs
Tails the logs of the Karpenter controller pod.
kubectl logs -f -n kube-system -l app.kubernetes.io/name=karpenter
Current install guides use kube-system; older installs used a karpenter namespace.
11 commands from the cloud runbook. Fill in a placeholder once and every command uses it.
Tails the logs of the Karpenter controller pod.
kubectl logs -f -n kube-system -l app.kubernetes.io/name=karpenter
Current install guides use kube-system; older installs used a karpenter namespace.
Shows all NodeClaims provisioned by Karpenter.
kubectl get nodeclaims
Filters Karpenter logs specifically for scale-down and disruption events.
kubectl logs -n kube-system -l app.kubernetes.io/name=karpenter | grep -i disrupt
Shows all Karpenter NodePool configurations.
kubectl get nodepools
Shows detailed info about a specific NodeClaim including instance type.
kubectl describe nodeclaim <nodeclaim-name>
Shows all EC2NodeClass resources used by Karpenter for AWS configuration.
kubectl get ec2nodeclasses
Shows each NodePool's CPU limit next to the CPU it has provisioned.
kubectl get nodepools -o custom-columns=NAME:.metadata.name,CPU_LIMIT:.spec.limits.cpu,CPU_USED:.status.resources.cpu
Streams NodeClaim changes as Karpenter provisions and consolidates nodes.
kubectl get nodeclaims -w
Shows a pod's scheduling events, where Karpenter reports why no NodePool fits it.
kubectl get events -n <namespace> --field-selector involvedObject.name=<pod-name> --sort-by=.lastTimestamp
Stops Karpenter from consolidating, expiring or replacing the node this pod runs on.
kubectl annotate pod <pod-name> -n <namespace> karpenter.sh/do-not-disrupt=true
Remove it with the same command and a trailing minus: karpenter.sh/do-not-disrupt-
Prints the consolidation policy and disruption budgets of a NodePool.
kubectl get nodepool <nodepool-name> -o jsonpath='{.spec.disruption}'