Kubernetes Taints & Tolerations Simulator
Simulate pod scheduling against tainted nodes, verify matching logic, and output clean toleration YAML — entirely on this device.
Simulate pod scheduling eligibility against tainted nodes, verify matching logic, and output clean YAML.
Scheduling Simulation Outcome
Do it offline:$
How to use it
- Select a preconfigured architecture preset (GPU node, control-plane, spot instance, or node outage eviction) or enter custom node taints.
- Define node taint key, value, and scheduling effect (NoSchedule, PreferNoSchedule, or NoExecute).
- Configure pod tolerations specifying the matching operator (Equal or Exists), key, value, and optional tolerationSeconds.
- Evaluate the live scheduling status (ALLOWED, BLOCKED, SOFT WARNING, or WILL EVICT) and inspect any untolerated taints.
- Copy the generated pod tolerations YAML snippet and equivalent kubectl taint CLI command.
Simulate Kubernetes pod scheduling against tainted nodes, verify matching semantics between taints and tolerations, and generate spec-compliant YAML manifests.
How it works
Kubernetes taints allow a node to repel a set of pods unless the pod has matching tolerations configured in its spec.
A taint consists of a key, value, and effect (NoSchedule blocks scheduling, PreferNoSchedule discourages it, and NoExecute evicts existing running pods).
A pod toleration matches a taint if keys match (or operator is Exists), effects match (or effect is empty), and values match when using operator Equal.
All matching evaluations and YAML generations run deterministically inside your browser without contacting an external Kubernetes cluster.
Examples
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
Common errors
FAQ
What is the difference between NoSchedule and PreferNoSchedule?
NoSchedule is a hard requirement: kube-scheduler will never place a pod on the tainted node unless the pod has a matching toleration. PreferNoSchedule is a soft requirement: the scheduler attempts to avoid placing the pod on the node, but will schedule it there if no alternative nodes are available.
How does NoExecute differ from NoSchedule?
NoSchedule only affects pods at scheduling time. NoExecute also affects pods already running on the node: if a node is tainted with NoExecute, any running pod lacking a matching toleration is immediately evicted. If the pod has a toleration with tolerationSeconds, it remains running for that duration before eviction.
How does an empty toleration key or effect act as a wildcard?
An empty key with operator 'Exists' matches every taint key on the node. Similarly, omitting the effect field on a toleration matches all taint effects (NoSchedule, PreferNoSchedule, and NoExecute).