gke/BP/2026_003
Product: Google Kubernetes Engine
Rule class: Best practice, opinionated recommendation
Description
Absence or incorrect setup of Pod Disruption Budgets (PDBs) means Kubernetes cannot enforce limits on voluntary disruptions (e.g., node upgrades, node scale-downs). PDBs ensure that a minimum number or percentage of pods remain running during planned disruptions.
Additionally, if terminationGracePeriodSeconds is misconfigured (too short or excessively long), pods might not gracefully shut down or may block node drains entirely. PDBs and terminationGracePeriodSeconds must work together optimally to ensure workloads can migrate safely during planned maintenance.
Google Cloud Active Assist automatically evaluates cluster health and surfaces recommendations in the Recommendation Hub for workloads missing or having misconfigured Pod Disruption Budgets.
Remediation
To resolve this issue, review the Active Assist recommendations for the cluster and define appropriate Pod Disruption Budgets for the workloads.
-
List the PDB recommendations using the
gcloudCLI:gcloud recommender recommendations list \ --project [PROJECT_ID] \ --location [LOCATION] \ --recommender=google.container.DiagnosisRecommender \ --format="table(name, description, stateInfo.state)" \ --filter="description:'Pod Disruption Budget'" -
Create a Pod Disruption Budget for the affected workload. Example PDB definition:
apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: my-app-pdb namespace: default spec: minAvailable: 1 selector: matchLabels: app: my-app -
Apply the PDB to the cluster:
kubectl apply -f pdb.yaml