<p>I have pod with this settings:</p>

<pre><code>Node-Selectors:  &lt;none&gt;
Tolerations:     node.kubernetes.io/memory-pressure:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 60s
                 role_va
</code></pre>

<p>The pod is scheduled into this node:</p>

<pre><code>Labels:             balancer=true
                    beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    cpu_avx2=true
                    cpu_avx512f=true
                    kubernetes.io/hostname=p20b-sr3-r5-k8s-node4
                    master=true
                    worker=true
Annotations:        node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
Taints:             &lt;none&gt;
</code></pre>

<p>Please, help me understand why.
If I'm not mistaken the pod with toleration "role_va" must be scheduled <strong>only</strong> to node that has this taint.
In my case the node doesn't have this taint but the pod is scheduled into this node whatever. Why?</p>

malcolm
<p>As Malgorzata said, Taints and Tolerations are only useful for the nodes to accept a certain kind of pods. E.g. a node with &quot;blue&quot; taint can only accept pods with &quot;blue&quot; toleration. However, it does not mean that the pod with &quot;blue&quot; toleration would end up only in the node with &quot;blue&quot; taint. The Kube-Scheduler may pick up any other node that does not have a taint (and hence no preference of a pod type).</p>
<p>Below are two possible ways to achieve your requirements.</p>
<ol>
<li><p>Apply the node with a taint and pod with that toleration. And also declare node affinity for the pod, which is a preference of a pod to get schedule on a particular node. These two configurations together would make sure that your pod would get scheduled on the specific node. And the node will only have the pods with a specific toleration.</p>
</li>
<li><p>If you have three nodes, apply &quot;blue&quot; taint on one of them and &quot;red&quot; taint on the rest of the nodes. That will force the pod with &quot;blue&quot; toleration only one choice to go on the node with &quot;blue&quot; taint. Because the other nodes have &quot;red&quot; taint and the pod does not have &quot;red&quot; toleration.</p>
</li>
</ol>
