Taints Tolerations Calculator
Determine which pods can schedule onto tainted nodes given their tolerations.
About Taints Tolerations Calculator
Taints repel pods from a node unless the pod carries a matching toleration, commonly used to reserve nodes for dedicated workloads (GPU nodes, spot/preemptible instances, specific teams). A given workload's schedulable node count is the untainted nodes plus whichever tainted nodes its tolerations unlock — nodes it neither avoids nor tolerates remain permanently off-limits to it.
Formula
schedulableNodes = (totalNodes - taintedNodes) + toleratedNodes
- N
- Total nodes in the cluster
- T
- Number of tainted nodes
- T_t
- Tainted nodes this workload tolerates
- S
- Nodes schedulable for this workload
Worked example
With the default values below, Taints Tolerations Calculator returns Schedulable Nodes of 36. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Total Nodesaccepts 1–100,000 nodes
- 40 nodes
- Tainted Nodesaccepts 0–100,000 nodes
- 10 nodes
- Tainted Nodes This Workload Toleratesaccepts 0–100,000 nodes
- 6 nodes
- Pods per Nodeaccepts 1–1,000 pods
- 20 pods
Results
- Schedulable Nodes
- 36 nodes
- Effective Pod Capacity
- 720 pods
- Nodes Still Off-Limits
- 4 nodes
- Cluster Capacity Off-Limits
- 10.0%
Step by step
- 1Schedulable nodes = total − tainted + tolerated= 36
- 2Capacity impact= 720 pods
Assumptions and limits
- The result is derived only from the 4 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax or compounding frequency into account.
- Figures are rounded for display to 1 decimal place, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
What's the difference between NoSchedule and NoExecute taints?
NoSchedule blocks new pods from being scheduled onto the node but doesn't affect pods already running there. NoExecute goes further — it evicts existing pods that don't tolerate the taint, in addition to blocking new ones.
Do tolerations guarantee a pod will be scheduled on a tainted node?
No — a toleration only removes the taint as a blocker; the scheduler still needs to independently decide to place the pod there based on other constraints like resource requests, affinity rules, and available capacity.
Why do cloud providers taint spot/preemptible node pools?
So only workloads explicitly designed to tolerate interruption (with a matching toleration) get scheduled there — this prevents critical stateful workloads from silently landing on cheaper but preemptible capacity.
