DisruptionTarget
KubernetesWARNINGNotablePod LifecycleHIGH confidence

Pod is being evicted by a disruption controller

Production Risk

Medium — indicates active eviction; replicas may be unavailable if PDB is misconfigured.

What this means

The DisruptionTarget condition is added to a pod when it is being evicted by a disruption source such as a PodDisruptionBudget eviction, preemption by a higher-priority pod, or a node drain. The condition carries a reason field explaining the source of the disruption.

Why it happens
  1. 1Node is being drained and the pod was selected for eviction.
  2. 2A higher-priority pod preempted this pod to free up resources.
  3. 3A direct Eviction API call targeted this pod.
  4. 4A PodDisruptionBudget-controlled eviction was triggered.
How to reproduce

Pod is in Terminating state and has a DisruptionTarget condition set by the control plane.

trigger — this will error
trigger — this will error
kubectl describe pod my-pod
# Conditions:
#   Type               Status  Reason
#   DisruptionTarget   True    EvictionByEvictionAPI

expected output

Conditions:
  Type               Status  Reason
  DisruptionTarget   True    PreemptionByScheduler

Fix 1

Inspect the disruption reason and act accordingly

WHEN Pod is unexpectedly terminating

Inspect the disruption reason and act accordingly
kubectl get pod my-pod -o jsonpath='{.status.conditions[?(@.type=="DisruptionTarget")]}'

Why this works

The reason field on the condition identifies the eviction source so you can address the root cause (node pressure, quota, priority).

Fix 2

Ensure a PodDisruptionBudget protects critical workloads

WHEN Pod is being evicted too aggressively during drains

Ensure a PodDisruptionBudget protects critical workloads
kubectl apply -f - <<EOF
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: my-pdb
spec:
  minAvailable: 1
  selector:
    matchLabels:
      app: my-app
EOF

Why this works

A PDB limits simultaneous voluntary disruptions to preserve availability.

What not to do

Version notes
Kubernetes 1.26

DisruptionTarget pod condition introduced.

Sources
Official documentation ↗

Kubernetes 1.26 — Pod Disruptions

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All Kubernetes errors