1.28 Kubernetes Availability Control Definition
Kubernetes Availability Control ensures service reliability by managing pod availability with readiness and liveness probes.
Kubernetes Availability Control Definition is the precise characterization of PodDisruptionBudgets as the specific mechanism through which Kubernetes constrains voluntary disruptions to a workload, defined narrowly by the distinction between disruptions an operator deliberately initiates and disruptions that occur involuntarily, since only the former falls within its scope.
Voluntary vs. Involuntary Disruption as the Defining Distinction
Voluntary Disruptions Are Operator-Initiated
A voluntary disruption is defined as an action deliberately taken by a cluster operator or automated process, such as draining a node for maintenance or upgrading a workload's underlying nodes, where the timing and occurrence of the disruption are within someone's control.
Involuntary Disruptions Fall Outside This Definition
An involuntary disruption, such as a node crashing unexpectedly or a hardware failure, is explicitly excluded from what a PodDisruptionBudget governs; these events are addressed instead by the self-healing behavior of workload controllers and the scheduler, not by disruption budgets.
PodDisruptionBudget Defined by Its Guarantee
A Minimum Availability Floor
A PodDisruptionBudget is defined by the specific guarantee it enforces: a minimum number, or minimum percentage, of a workload's Pods that must remain available at any point during a sequence of voluntary disruptions, expressed either as minAvailable or maxUnavailable.
Enforced by Blocking, Not by Preventing the Triggering Action
The definition specifies that a PodDisruptionBudget does not prevent a node drain or similar operation from being initiated; rather, it causes the eviction of specific Pods to be blocked if performing that eviction would violate the configured availability floor, until enough other Pods become available again.
Scope of Application
Tied to a Selector, Not to a Specific Controller Type
A PodDisruptionBudget is defined by the Pods it applies to through a label selector, rather than by being tied to any single kind of workload controller; it can apply to Pods managed by a Deployment, a StatefulSet, or any other controller, so long as the selector matches them.
Applies Only While Disruptions Are Requested
The budget's constraint is defined to take effect only at the moment a voluntary disruption, such as an eviction request, is attempted; it imposes no restriction on a workload's Pods outside the context of such a request being made.
What Falls Outside This Definition
Not a General Reliability Guarantee
A PodDisruptionBudget is defined narrowly around the specific scenario of voluntary disruption; it does not by itself guarantee replication, spread across failure domains, or recovery from involuntary failures, each of which is governed by separate, independently defined mechanisms.