We can think of
Node Affinity
as analagous analogus to magnetic attraction;We can think of
Node Taints
as the complement of that (magnetic repulsion);We can think of the determinant of a Node's eventual location as being "up to the
Kube scheduler.
That's why we'll often have an effect
of NoSchedule
for nodes we'll want an exception of sorts for.
"The scheduler checks taints, not node conditions, when it makes scheduling decisions." K8s docs
"The control plane, using the node controller, automatically creates taints with a NoSchedule effect for node conditions." K8s docs
"node.kubernetes.io/unschedulable:NoSchedule toleration is added automatically to DaemonSet Pods."
- See also: DaemonSet default taints and tolerations