Scheduling
Taints and tolerations
42 / 82

A taint keeps ordinary Pods off a node unless they explicitly tolerate it.

Taints are set on nodes. They are how you reserve GPU nodes, isolate noisy workloads, or drain a node.

gpu-node-1taint: dedicated=gpu:NoScheduleweb Podno tolerationXtrainer Podtolerates gpuNoExecute: evictsNoSchedule: blocksPreferNoSchedule: softthree taint effects
reserve a node
$ kubectl taint nodes gpu-node-1 \
    dedicated=gpu:NoSchedule
# toleration in the Pod spec
tolerations:
- {key: dedicated, operator: Equal,
   value: gpu, effect: NoSchedule}

A toleration only permits

It does not attract. To force trainers onto GPU nodes, also add node affinity or a nodeSelector.

Where you meet taints

Control-plane nodes, kubectl drain, not-ready nodes, Spot nodes, GKE and EKS dedicated node pools.