A Kubernetes node is a machine in a cluster that runs workloads. It can be a physical server or a virtual machine, and it hosts pods using a container runtime, with an agent called the kubelet reporting its state to the control plane and starting the containers it is told to run.
Why it matters
Nodes are the capacity of your cluster. The scheduler places each pod on a node with enough free CPU and memory, based on the resource requests you declare. If a node becomes unhealthy, Kubernetes marks it NotReady and reschedules its pods elsewhere, which is part of how clusters recover from failures. Nodes also need patching and upgrades, usually done by draining them first.
Example
kubectl get nodes
NAME STATUS ROLES AGE VERSION
node-1 Ready <none> 41d v1.30.2
node-2 Ready <none> 41d v1.30.2
kubectl drain node-2 --ignore-daemonsets
Draining evicts the pods on node-2 safely so the machine can be updated.
Common mistakes
- Running too few nodes, so one failure leaves no room to reschedule pods.
- Not setting resource requests, which lets the scheduler overload a node.
- Rebooting a node without draining it first.
- Confusing a node with a pod.
Related
Get notified when this term updates
Plus occasional practical tips on uptime and monitoring, nothing else. Unsubscribe anytime.
This page is general information written by our editorial team and updated when documentation changes. Servers and providers differ, so test changes safely first. See our editorial policy and disclaimer.