Taints and Tolerations

Taints and Tolerations are features on Kubernetes that allow us to restrict certain pods from being scheduled on certain Worker Node by the Kube Scheduler

Taints are property set on the Worker Node to allow only certain Pods that can tolerate the node taint, it is a neat way to isolate or prevent certain pods from being scheduled on the node

kubectl taint node node1 app=backend:NoExecute

Taint Effects

No Schedule

This taint means that the system will ensure that the pod is not scheduled on the tainted node

PreferNoSchedule

This taint means that the system will give it’s best effort to ensure not to schedule the pod on this node

NoExecute

This node means, that no pod will be scheduled on this node, and any existing pods on the node will be evicted from the pod immediately