Topic 1: kube-scheduler
Official baseline: (The Kubernetes Authors, 2026). My working version: The scheduler picks a node for Pods that do not already have one. It filters impossible nodes and scores the rest.
Mental Model
The scheduler picks a node for Pods that do not already have one. It filters impossible nodes and scores the rest.
Notes
- Pending Pods are scheduling evidence, not just failed deployments.
- Resource requests, node selectors, affinities, taints, and volumes all constrain placement.
- Scheduler decisions are only as good as the constraints you declare.
Homelab Angle
Practice reading kubectl describe pod events until pending states feel mechanical.
Verify It
- Read the object status before changing the manifest.
- Check events for the controller or node that is actually complaining.
- Confirm the official source linked below still matches the cluster version you run.
Common Failure Modes
- Treating the YAML object as the system, instead of one input to a reconciliation loop.
- Debugging from outside the cluster when the failure only exists inside cluster networking or node state.
- Forgetting that Kubernetes version, addon version, and runtime behavior are linked.
Sources
- Kubernetes Scheduler - source path:
content/en/docs/concepts/scheduling-eviction/kube-scheduler.md, commit 8cc9e19b8eec8d5cf49eacd66f86a81648edb1a0. - Kubernetes documentation is licensed under CC BY 4.0; these notes are original commentary and link back to the official source.
The Kubernetes Authors. (2026). Kubernetes Scheduler. https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/