TL;DR
Taints go on nodes, tolerations go on pods. A tainted node rejects pods by default, and a toleration is what lets a specific pod back in — the opposite of node selectors and affinity, where the pod was the one doing the choosing.
Three effects: NoSchedule, PreferNoSchedule, NoExecute.
NoExecute is the odd one out. It can evict pods that are already running, not just block new ones from landing.
Tolerating a taint doesn't mean a pod prefers that node. It just means the taint won't stop it from scheduling.
Skip around if you already know the basics:
The problem this actually solves
Taints, tolerations, and the three effects
Where this actually shows up
What the scheduler's doing under the hood
Taints and tolerations vs node affinity
What goes wrong, and why
Try it yourself
WHY: the problem
Node selectors and affinity, from Part 2, are opt-in. A pod decides which nodes it wants, and the scheduler tries to honor that.
Sometimes you need the opposite. A node tha
Discussion
Say something first
It all starts with you—share your thoughts now.