Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
World desk4 min

What Happens to Kubernetes Pods When a Node Becomes Unreachable?

Kubernetes may evict pods after an unreachable-node taint and create new replacements, but a network-partitioned node can keep its original processes running.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When a Kubernetes node stops reporting, the control plane marks it unreachable, taints it, and eventually may evict its pods. A replacement can be created by the workload’s controller, but it is a new pod—not the same pod moved elsewhere. If the node is only cut off by a network partition, its original processes may still be running even after the API shows those pods deleted.

What Kubernetes does when a node stops reporting

Kubernetes tracks node health using status updates and Lease objects. If the control plane does not hear from a node within the configured node-monitor-grace-period, the node controller changes its Ready condition to Unknown and applies the node.kubernetes.io/unreachable taint with NoExecute behavior. The documented default grace period is 50 seconds; cluster operators can configure a different value. See the Kubernetes node status documentation and node reference.

As an Amazon Associate I earn from qualifying purchases.

That 50-second default is a detection threshold, not an end-to-end recovery promise. After the taint is applied, pod tolerations determine whether and when existing pods become eligible for eviction. Scheduling constraints, capacity, storage, and controller behavior then affect whether and when replacements run.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How long before Kubernetes evicts a pod?

For ordinary pods, Kubernetes automatically adds a 300-second toleration for the unreachable and not-ready taints unless the pod or a controller supplies different tolerations. The five-minute window begins when the taint is applied, not necessarily at the moment the node first fails. The documented defaults and behavior are described in Kubernetes taints and tolerations.

#1 Best Overall
  • No matching NoExecute toleration: the pod is eligible for eviction once the taint is applied.
  • Finite tolerationSeconds: the pod remains bound for the specified period after the taint, then becomes eligible for eviction.
  • No tolerationSeconds: a matching toleration can keep the pod bound indefinitely.
  • DaemonSet pod: DaemonSet pods tolerate unreachable and not-ready taints indefinitely, so those taints do not evict them.

Since Kubernetes 1.29, a separate taint-eviction-controller handles taint-based eviction. Cluster administrators can disable it through kube-controller-manager configuration, so the release and configuration in a particular cluster matter.

Does Kubernetes restart the pod on another node?

No. Kubernetes does not transfer a pod’s binding to another node. The failed-node pod may eventually be deleted from the API, and an owning controller can create a replacement pod to restore the desired state. The replacement has a different UID and is scheduled as a new pod; it may land on another suitable node, but placement depends on available capacity, affinity and topology rules, storage, and other scheduling constraints. As the Pod Lifecycle documentation puts it, a pod is not rescheduled as the same object; it can be replaced by a near-identical pod.

What happens next depends in part on the workload type:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Deployment or ReplicaSet: the controller can create a replacement to meet the desired replica count.
  • StatefulSet: the controller manages replacement according to StatefulSet identity and storage behavior; safe recovery can depend on whether the previous instance is truly stopped and its storage is available.
  • Job or another controller: recovery follows that controller’s own desired-state and retry behavior.
  • Standalone pod: there may be no higher-level controller to create a replacement.

A Pod Disruption Budget is not a guarantee against node-failure eviction. PDBs govern voluntary disruptions through the eviction API; hardware failure and network partition are involuntary disruptions. See Kubernetes Pod disruptions.

Why an unreachable pod may still be running

Missing heartbeats do not tell Kubernetes with certainty whether a machine is powered off or merely disconnected from the control plane. In a network partition, the API server can record a pod’s deletion without being able to deliver that deletion to the kubelet. The original process may keep running on the isolated node while a replacement starts elsewhere. Kubernetes documents this possibility in its taints and tolerations guidance.

That creates a risk of two active instances doing work at once, especially for stateful services or workloads that assume exclusive ownership. An API-level deletion is not proof that the process stopped. Before forcing recovery, consider whether the old node is fenced, whether the application uses reliable leadership or leases, and whether storage can safely be attached to a replacement.

Check node, pod, and toleration state

  1. Run kubectl describe node <node-name> and inspect the Ready condition, recent events, and taints. The node reference documents this command for viewing node conditions.
  2. Run kubectl get pods -o wide to see which pods are associated with the node and whether replacement pods have been created.
  3. Inspect the affected pod’s tolerations and owner references to establish its eviction window and whether a controller should create a replacement.
  4. If a replacement is Pending, inspect scheduler events and constraints such as available capacity, affinity, topology, and volume requirements.
  5. For stateful workloads, verify the node and storage state before attempting force deletion or volume detachment. Deleting a pod object alone does not establish that an unreachable process has stopped.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When force-detaching storage may be appropriate

If a node has truly shut down non-gracefully and normal storage recovery is blocked, Kubernetes documents an node.kubernetes.io/out-of-service taint workflow that can force deletion of pods and immediate volume detach. This is an administrator procedure, not a routine response to missing heartbeats: first verify the machine is shut down and will not restart while the workload may still be active. Kubernetes warns that force-detaching a volume while the old node is still running the workload can violate storage ordering expectations and risk data corruption.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Kubernetes documentation describes forced volume detach after a six-minute deletion timeout as an optional, configuration-dependent behavior; it is not a universal recovery timer. After the node recovers and migrated pods have been checked, remove the out-of-service taint. See the node shutdown documentation.

Why recovery time varies

The documented defaults provide useful reference points, but not a fixed service-level timeline. Actual recovery depends on the configured node-monitor grace period, pod tolerations, whether taint eviction is enabled, the workload controller, scheduler capacity and constraints, cloud-provider behavior, and storage integration. Treat the 50-second detection default and 300-second ordinary-pod toleration as separate intervals: neither alone tells you when an application will be serving again.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.