Tenet III
Scheduling
Placement as stewardship: constraints, resources, fairness, and the calm geometry of execution.
Ceremonial Statement
A rite of placement.
“Do not scatter the work by impulse. Place it by rule. The node is not a bucket; it is a covenant of resources.”
Plain-language Explanation
Scheduling is how intent becomes physical.
The scheduler chooses which node runs a Pod. That choice is shaped by resource requests/limits, affinity and anti-affinity, taints and tolerations, topology spread constraints, and availability goals. Scheduling is not “just performance”—it’s reliability, cost, and blast radius.
Tenet III encourages explicit constraints. If you want isolation, say it. If you want spreading, say it. If you want priority, encode it. Then observe whether reality matches your declaration.
Kubernetes Mapping
Key features and the questions they answer.
- Requests/Limits: what does this workload need to run safely?
- PriorityClasses: what should live when the cluster is full?
- (Anti-)Affinity: what should run together or apart?
- Taints/Tolerations: which nodes are reserved or hazardous?
- Topology Spread: how do we distribute replicas across zones/racks/nodes?
Operator Mindset
Scheduling as discipline.
Requests are promises
Under-requesting is not efficiency—it’s lying. Over-requesting is not safety—it’s waste. Make requests match measured reality.
Constraints beat hope
If replicas must survive a node failure, enforce spreading. If you need GPU or special hardware, encode it. Hope is not an SLO.
Observe pending Pods
Pending Pods are the scheduler’s truth signal. Use kubectl describe pod and events to see why placement failed.