Pod Disruption Budgets

This page describes the PodDisruptionBudgets (PDBs) that the MinIO AIStor Operator creates for Object Store pools, and the objectStore.disablePodDisruptionBudget field that turns them off.

A PDB limits how many Pods a voluntary disruption can remove at once. Voluntary disruptions include draining a node for maintenance, a cluster autoscaler removing a node, and a node pool upgrade. PDBs have no effect on involuntary disruptions such as a node failure or an out-of-memory kill.

How the Operator manages PodDisruptionBudgets

The Operator creates one PDB for each Object Store pool of more than two servers, in the Object Store namespace, named after that pool’s StatefulSet. A pool of two servers or fewer gets no PDB, because it cannot lose a server and still hold write quorum. Write quorum is the number of servers that must stay available for the pool to accept writes.

The Operator sets minAvailable to that number, calculated from the pool’s erasure coding configuration. If the Operator cannot read that configuration, it falls back to a simple majority of the pool’s servers.

While a pool’s StatefulSet is not fully ready, the Operator skips PDB updates for that pool. This keeps it from interfering while you add, remove, or decommission a pool.

A node drain stops if evicting the next Pod would take a pool below minAvailable. This is the intended behavior. It prevents a rolling node operation from dropping the Object Store below write quorum.

Disable PodDisruptionBudget creation

Some organizations manage disruption policy centrally and do not want an Operator creating PDBs in their clusters. Set objectStore.disablePodDisruptionBudget to true in your Object Store Helm values to stop the Operator from creating them:

objectStore:
  disablePodDisruptionBudget: true

Apply the configuration when deploying or upgrading your Object Store:

helm upgrade --install -n OBJECT-STORE-NAMESPACE OBJECT-STORE-NAME minio/aistor-objectstore -f aistor-objectstore-values.yaml

Replace OBJECT-STORE-NAMESPACE with your Object Store namespace and OBJECT-STORE-NAME with the Helm release name.

The Operator deletes the PDBs it created for the Object Store. It does not touch a PDB you created yourself, even one that targets the same pool.

Set the field back to false, the default, and the Operator manages the PDBs again.

Without a PDB, nothing stops a node drain from evicting enough Object Store Pods to break write quorum for a pool. Writes to that pool fail until enough Pods return to service. If you disable this field, drain nodes one at a time and confirm the Object Store is healthy before draining the next.

Version compatibility

The objectStore.disablePodDisruptionBudget field requires Operator RELEASE.2026-07-16T23-53-30Z or later. Earlier releases always create them for pools of more than two servers, and offer no way to turn that off.