Topic 3: Taints, Tolerations And Affinity
Official baseline: (The Kubernetes Authors, 2026b, 2026a). My working version: Taints repel Pods. Tolerations let Pods accept that repulsion. Affinity attracts or separates by labels.
Mental Model
Taints repel Pods. Tolerations let Pods accept that repulsion. Affinity attracts or separates by labels.
Notes
- Toleration is permission, not a placement request.
- Affinity and anti-affinity can encode workload relationships.
- Too many placement rules create unschedulable mystery.
Homelab Angle
Reserve special nodes deliberately: storage nodes, GPU nodes, ingress nodes, or control-plane nodes.
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
- Taints and Tolerations - source path:
content/en/docs/concepts/scheduling-eviction/taint-and-toleration.md, commit 8cc9e19b8eec8d5cf49eacd66f86a81648edb1a0. - Assigning Pods to Nodes - source path:
content/en/docs/concepts/scheduling-eviction/assign-pod-node.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. (2026a). Assigning Pods to Nodes. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
The Kubernetes Authors. (2026b). Taints and Tolerations. https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/