<p>so i naturally run <a href="https://github.com/NVIDIA/nvidia-docker" rel="nofollow noreferrer">nvidia-docker</a> and the <a href="https://github.com/NVIDIA/k8s-device-plugin" rel="nofollow noreferrer">k8s-device-plugin</a> as a <code>daemonset</code>. as not all my kubernetes worker nodes have gpus, i use a <code>nodeSelector</code> in the daemonset to run just on <code>node</code>s that i've labeled with <code>accelerator=nvidia</code>.</p>

<p>in another case, i also do the same for <a href="https://github.com/kubernetes/ingress-nginx" rel="nofollow noreferrer">ingress-nginx</a>: i label a few nodes that i want and run it as a <code>daemonset</code>. i then have an external (f5) load balancer that holds the VIP to the relevant DNS records for the ingress endpoints (yeah, i know there's a f5 ingress available - its on the todo list).</p>

<p>i've noticed that many users state that <code>daemonset</code>s should only be used for pods that should be running on ALL workers. is there anything inherently bad with my restriction of running <code>daemonset</code>s on a subset of nodes?</p>

yee379
<p>It's a valid use case. You can restrict the daemonset to run on the nodes that you want by using node selectors. </p>
