Kubernetes detects a potentially failed node when kubelet heartbeats stop arriving. The node controller can then mark the Node condition Unknown, apply an unreachable taint and eventually request Pod eviction. Separately, the EndpointSlice controller updates Service backend records as Pods’ serving status changes, and kube-proxy or another network implementation consumes those records. These are related but distinct steps, so there is no single guaranteed time from a machine failure to traffic removal.
1. Kubelet heartbeats tell the control plane whether a node is reachable
Kubernetes uses both Node status updates and a Lease object as node heartbeats. Each Node has a same-named Lease in the kube-node-lease namespace. The kubelet renews that Lease by updating spec.renewTime, which the control plane uses to assess node availability. See the Kubernetes project’s Node Status documentation and Lease documentation.
As an Amazon Associate I earn from qualifying purchases.
The Kubernetes documentation accessed in 2026 describes a default Lease update interval of 10 seconds. That is a documented default, not a guarantee for every cluster; configuration and distribution choices can differ.
2. The node controller changes the Node condition and applies a taint
If the controller does not hear from a Node within the configured node-monitor-grace-period, it changes the Node’s Ready condition to Unknown. Kubernetes documentation accessed in 2026 describes 50 seconds as the default grace period and five seconds as the default node-controller check period. These are defaults, not universal timings.
#1 Best Overall
| Node condition | What it indicates | Documented taint |
|---|---|---|
Unknown |
The controller has not heard from the Node within the grace period. | node.kubernetes.io/unreachable |
False |
The Node is known to be unhealthy and is not accepting Pods. | node.kubernetes.io/not-ready |
The distinction matters: Unknown describes missing communication, while False describes a known not-ready state. The taints influence scheduling. A NoExecute taint can also lead to eviction of existing Pods unless their tolerations allow them to remain. The controller’s behavior and condition meanings are described in the Kubernetes Nodes documentation and Node Status documentation.
3. Eviction is a later, conditional step
Marking a Node unreachable does not mean all its Pods are evicted immediately. The node controller may submit eviction requests; Kubernetes documentation accessed in 2026 describes a default five-minute wait between marking a Node Unknown and submitting the first request.
Eviction is rate-limited, and zone-health safeguards can slow or stop it when many Nodes in an availability zone are unhealthy. These protections help avoid treating a broad connectivity problem as a collection of independent machine failures. Pod tolerations also affect whether an existing Pod is evicted. Consequently, the documented delay is not a promised end-to-end deadline. See the Kubernetes Nodes documentation.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
4. Pod readiness and node health are different signals
A Node heartbeat reports whether the control plane can hear from the Node. Pod readiness indicates whether a particular Pod should receive Service traffic. A failed readiness probe causes the EndpointSlice controller to remove that Pod IP from matching Service EndpointSlices; this is an application-serving signal, not the same event as a missed Node Lease. The Kubernetes probe documentation explains readiness probes, while the Pod lifecycle documentation covers behavior when kubelet heartbeats fail and later recover. A transient kubelet outage should not be simplified to “every container becomes unready immediately.”
Rank #3
5. EndpointSlices describe Service backends
The EndpointSlice controller maintains endpoint records for Services that select Pods. For Pod-backed endpoints, the endpoint’s readiness and serving conditions are related to the Pod’s Ready condition. EndpointSlices are the source of truth for kube-proxy’s internal Service routing; other networking implementations or endpoint consumers may handle the records through their own mechanisms. See the Kubernetes EndpointSlices documentation and Cluster Architecture documentation.
The EndpointSlice API defines ready, serving and terminating conditions. Service proxies normally avoid terminating endpoints, but may use endpoints that are both serving and terminating when all available endpoints are terminating. These conditions explain why a terminating endpoint is not always treated the same as an endpoint that has stopped serving. See the EndpointSlice API reference.
Rank #4
What determines the time until traffic stops using a Pod?
There is no single fixed failure-to-removal interval. The sequence involves heartbeat detection, Node condition and taint changes, possible eviction, Pod state and EndpointSlice updates, then consumption by the Service networking layer. Timing depends on configured heartbeat and grace settings, Pod tolerations, eviction rate limits and zone health, endpoint conditions, and the cluster’s proxy or networking implementation. For an operational estimate, inspect those settings and behaviors in the specific Kubernetes version and distribution running your cluster; the project documentation’s defaults alone do not establish a guaranteed deadline.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




