For a storage=nvme label rule, required affinity excludes a nonmatching node; preferred affinity favors a match while a nonmatch may remain a candidate. Other constraints must still pass.

Node affinity places workloads on matching nodes

Node affinity matches workload requirements to node labels. It can require NVMe storage or prefer a newer instance family, but it does not replace the scheduler’s other checks. Even without affinity, scheduling filters resource requests, taints and volume constraints before scoring feasible nodes. It is not simply a comparison of idle capacity. ...

December 9, 2027 · 4 min · XB Field Notes
For untolerated taints, NoSchedule blocks new ordinary scheduling but leaves bound Pods; PreferNoSchedule softly avoids placement and leaves bound Pods; NoExecute blocks new scheduling and can evict bound Pods.

Taints repel pods that do not tolerate them

A taint repels Pods that do not tolerate its effect. A toleration removes that obstacle; it does not force placement onto specialized hardware. Dedicated-node designs usually combine a taint with a label and required node affinity, then check capacity and admission policy separately. ...

February 25, 2027 · 6 min · XB Field Notes