A missed heartbeat marks a node Unknown first, and evicts only after a grace period.
The two-stage timeout stops a brief network blip from rescheduling every Pod on a perfectly healthy node.
Node conditions are separate signals
| Ready | kubelet is healthy and can accept Pods |
| MemoryPressure | low memory: kubelet may evict Pods |
| DiskPressure | low disk or inodes: eviction possible |
| PIDPressure | too many processes |
| NetworkUnavailable | CNI not yet configured, often right after join |
inspect a node
$ kubectl describe node gke-np1-x2 | \ sed -n '/Conditions/,/Addresses/p' Ready True KubeletReady MemoryPressure False DiskPressure False PIDPressure False $ kubectl get lease -n kube-node-lease