<p>The k8s <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/" rel="nofollow noreferrer">node affinity</a> documentation explains how to deploy a pod to a specific node by first tagging the node with a label and using nodeSelector to pick the node. </p>

<p>However, I have a use case where I have 40-50  deployments in a cluster and I want to add a new node to the cluster and set that node dedicated to one of those deployments/pods without altering all those deployments which don't have any nodeSelector specified</p>

<p>For example, lets say I have 3 deployments, with no nodeSelector defined and 3 worker nodes. This means k8s decides where the pods will be deployed and it could be deployed in one of those 3 nodes. Now I have to create a 4th deployment, and add 4th server and I want to dedicate the 4th deployment to the 4th server and also want to make sure that k8s won't schedule the first 3 deployments to this 4th node. How can I do this without going through all those 3 deployment scheme and apply a nodeSelector filter to not deploy on 4th node?  (It would be ok to perform this change on 3 deployments, but I am talking about 50s of deployments in real life scenario) </p>

<p>The only thing that I can think of is to <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/" rel="nofollow noreferrer">taint</a> the node but if I do it, none of the pods will be scheduled there.</p>

<p>Is there a better approach here to achieve this goal that I am not aware of? </p>

zeroweb
<p>If you taint the 4th node, the 4th deployment with the toleration will be deployed on that node, while the other three won't.</p>
