Kubernetes Scheduling: Observing Silent Failures
· 10 min read
A Pending Pod means Kubernetes accepts your workload but can't run it.
Classic culprits are: insufficient capacity, overly restrictive placement
constraints, unbound PVCs, autoscaler ceilings, or namespace quota exhaustion.
Most teams discover this during an incident. You don't have to. Wire up the
OTel Collector's k8s_cluster, kubeletstats, and k8sobjects receivers,
alert on FailedScheduling events and Pending pod duration, and you'll catch
scheduling failures before your users do. This post covers the five root
causes, a kubectl debugging workflow, and a complete OTel
instrumentation setup with collector config, deployment topology, and
alert conditions.
