<p>when one pod has below tolerations.</p>
<pre><code>  tolerations:
  - key: CriticalAddonsOnly
    operator: Exists
  - effect: NoExecute
    operator: Exists
  - effect: NoSchedule
    operator: Exists
</code></pre>
<p>why it can be scheduled to the node with below taints.
<strong><code>Runtime=true:NoSchedule</code></strong></p>
<p>And I also searched the kubernetes documents. Generally one tolerations group will include the 'key', so how does below works?</p>
<pre><code> - effect: NoSchedule
    operator: Exists
</code></pre>

liam xu
<p>I have reproduced the issue,</p>
<p>I have tainted the node  <code>gke-cluster-4-default-pool-8ad24f8f-2ixm</code> with <code>Runtime=true:NoSchedule</code></p>
<pre><code>$ kubectl get nodes
NAME                                       STATUS   ROLES    AGE   VERSION
gke-cluster-4-default-pool-8ad24f8f-2ixm   Ready    &lt;none&gt;   10d   v1.26.6-gke.1700
gke-cluster-4-default-pool-8ad24f8f-ncy0   Ready    &lt;none&gt;   10d   v1.26.6-gke.1700
gke-cluster-4-default-pool-8ad24f8f-o537   Ready    &lt;none&gt;   10d   v1.26.6-gke.1700

$ kubectl taint nodes gke-cluster-4-default-pool-8ad24f8f-2ixm Runtime=true:NoSchedule
node/gke-cluster-4-default-pool-8ad24f8f-2ixm tainted
</code></pre>
<p>Then I have created a deployment without any tolerations, so the pods are not scheduled with nodes with taints:</p>
<pre><code>$ kubectl get pods -o wide
NAME                                READY   STATUS    RESTARTS   AGE   IP           NODE                                       NOMINATED NODE   READINESS GATES
nginx-deployment-7f456874f4-95x66   1/1     Running   0          34s   10.24.2.6    gke-cluster-4-default-pool-8ad24f8f-o537   &lt;none&gt;           &lt;none&gt;
nginx-deployment-7f456874f4-9sj68   1/1     Running   0          34s   10.24.0.12   gke-cluster-4-default-pool-8ad24f8f-ncy0   &lt;none&gt;           &lt;none&gt;
nginx-deployment-7f456874f4-f4s98   1/1     Running   0          34s   10.24.0.13   gke-cluster-4-default-pool-8ad24f8f-ncy0   &lt;none&gt;           &lt;none&gt;
nginx-deployment-7f456874f4-zbgp9   1/1     Running   0          34s   10.24.2.7    gke-cluster-4-default-pool-8ad24f8f-o537   &lt;none&gt;           &lt;none&gt;
nginx-deployment-7f456874f4-zs4js   1/1     Running   0          34s   10.24.0.11   gke-cluster-4-default-pool-8ad24f8f-ncy0   &lt;none&gt;           &lt;none&gt;
</code></pre>
<p>Later I have added the tolerations given by you and 2 pods have scheduled on the node with applied taints : (I have deleted the existing deployment and deployed after adding tolerations)</p>
<pre><code>kubectl get pods -o wide
NAME                               READY   STATUS    RESTARTS   AGE   IP           NODE                                       NOMINATED NODE   READINESS GATES
nginx-deployment-6d998db8f-58wr2   1/1     Running   0          6s    10.24.1.7    gke-cluster-4-default-pool-8ad24f8f-2ixm   &lt;none&gt;           &lt;none&gt;
nginx-deployment-6d998db8f-62dcm   1/1     Running   0          6s    10.24.2.8    gke-cluster-4-default-pool-8ad24f8f-o537   &lt;none&gt;           &lt;none&gt;
nginx-deployment-6d998db8f-srcmg   1/1     Running   0          6s    10.24.0.14   gke-cluster-4-default-pool-8ad24f8f-ncy0   &lt;none&gt;           &lt;none&gt;
nginx-deployment-6d998db8f-wv48m   1/1     Running   0          6s    10.24.1.6    gke-cluster-4-default-pool-8ad24f8f-2ixm   &lt;none&gt;           &lt;none&gt;
nginx-deployment-6d998db8f-zbck2   1/1     Running   0          6s    10.24.0.15   gke-cluster-4-default-pool-8ad24f8f-ncy0   &lt;none&gt;           &lt;none&gt;
</code></pre>
<p>So the tolerations and taints are working fine so the issue is with the resource itself, it can be due to below reasons:</p>
<p>1.Insufficient resources on nodes such as CPU or memory check those with kubectl describe command.</p>
<p>2.Double check the taints and tolerations if there are any other taints or tolerations that are stopping the pod to schedule.</p>
<p>3.Check if you have any nodeselectors and affinity rules that prevent pods from scheduling the node.</p>
<p>For further debugging add the describe command of pod and node. Attaching a <a href="https://foxutech.com/kubernetes-taints-and-tolerations-explained/" rel="nofollow noreferrer">blog</a> written by motoskia for your reference.</p>
