Nov 06, 2026 Kubernetes

Three Kubernetes Replicas Can Still Be One Single Point of Failure

Three replicas on one failure domain

Your Deployment says replicas: 3. All three pods are Ready. The dashboard is green.

Then one node disappears and so does the application.

Replica count is a desired quantity. Availability is a property you have to test.

Failure mode 1: all replicas share a failure domain

The scheduler is not obligated to distribute every workload across multiple nodes or zones in the way your business expects. Inspect placement rather than assuming it:

kubectl get pods -n production -l app=checkout -o wide
kubectl get nodes -L topology.kubernetes.io/zone

For important stateless workloads, define appropriate topologySpreadConstraints or pod anti-affinity. Consider how constraints behave when a zone has no available nodes: a strict rule improves separation but can also leave replacement pods Pending.

Failure mode 2: your disruption policy blocks maintenance

A PodDisruptionBudget (PDB) governs many voluntary evictions, such as a node drain through the Eviction API. It does not prevent hardware failures, and it does not protect against every possible pod deletion.

A three-replica app with minAvailable: 3 may prevent an ordinary drain because no eviction is allowed. That looks conservative until routine upgrades start failing.

kubectl get pdb -A
kubectl describe pdb checkout -n production

Design the budget around the number of healthy replicas your application can genuinely tolerate losing. Test the maintenance path, not just the steady state.

Failure mode 3: Ready doesn't mean usable

A readiness probe that returns 200 when the process is alive—but before it can serve customer traffic—creates false confidence. A badly scoped liveness probe can make an overloaded service restart repeatedly during a dependency incident.

Probes should represent the behavior they control. Readiness decides whether a pod receives traffic; liveness decides whether it should be restarted. Neither replaces external user-journey monitoring.

Failure mode 4: replicas depend on the same fragile component

Three API pods backed by one database instance, one DNS path, or one external authentication endpoint can fail together. A system is only as available as the dependencies on its critical request path.

A better availability review asks:

  • Which node, zone, network, and data-layer failures are in scope?
  • Do replicas actually span those boundaries?
  • Can an ordinary rollout and node drain finish without customer impact?
  • Are there enough spare resources to reschedule after a loss?
  • Have we tested the application rather than just the Deployment object?

The detailed mechanics are in my Kubernetes high-availability guide. The important distinction here is simpler: three green pods are evidence of three green pods, not proof of high availability.

Discussion: What's the most surprising single point of failure you've found in a supposedly HA Kubernetes setup?

Need independent eyes on availability and workload configuration? See the Kubernetes Cluster Audit or request a discovery call.

← Back to Blog