kubectl describe node: Usage, Options & Common CI Errors
See a node's taints, conditions, capacity, and what it is running.
kubectl describe node prints a node's taints, conditions, allocatable resources, and the requests already committed to it. It is the command that explains why a pod will not schedule or why a node is misbehaving.
What it does
kubectl describe node NODE aggregates the node's labels and taints, its Conditions (Ready, MemoryPressure, DiskPressure, PIDPressure), Capacity vs Allocatable, the Allocated resources summary (requests/limits as a percentage), and the list of non-terminated pods on it - the full picture of node health and headroom.
Common usage
kubectl describe node ip-10-0-1-5
kubectl describe node ip-10-0-1-5 | grep -A6 'Allocated resources'
kubectl describe node ip-10-0-1-5 | grep -A3 Taints
kubectl describe node ip-10-0-1-5 | grep -A8 ConditionsCommon errors in CI
When pods sit Pending, describe node is where you confirm the cause: a Taints line (e.g. node.kubernetes.io/not-ready or a dedicated taint) the pod does not tolerate, or an Allocated resources block already near 100% so a new request will not fit. MemoryPressure: True / DiskPressure: True conditions explain evictions and a NoSchedule taint the kubelet added automatically. SchedulingDisabled in the node's status means it was cordoned. On managed clusters you may lack RBAC to describe nodes; "nodes \"X\" is forbidden" then means the runner's service account needs the node get/list permission.