In other words, a Daemon Pod could be scheduled on to a node without 'matching taints'. Sometimes, a Daemon Pod may be 'misscheduled' on to a node where it does not belong. Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints. One or more taints are applied to a node this marks that the node should not accept any pods that do not tolerate the taints. Regardless of which scheduler (Daemonset Controller or default scheduler) schedules Daemon Pods, taints and tolerations are used to ensure that Daemon pods are not scheduled onto inappropriate nodes. The default scheduler is then used to bind the pod to the target host.
![what is kubernetes daemonset what is kubernetes daemonset](https://1.bp.blogspot.com/-UmcoVcgwFLI/W9TsmX3BTAI/AAAAAAAADt0/qBOxODFYX6ka0w9XQ9LqsiU-Y0JaEkOCQCLcBGAs/s1600/Screenshot%2B2018-10-28%2Bat%2B4.22.32%2BAM.png)
Deleting a DaemonSet will clean up the Pods it created. As nodes are removed from the cluster, those Pods are garbage collected.
![what is kubernetes daemonset what is kubernetes daemonset](https://miro.medium.com/max/1252/1*YkLBukilVyDmcDdoK3092A.png)
As nodes are added to the cluster, Pods are added to them.
![what is kubernetes daemonset what is kubernetes daemonset](https://1.bp.blogspot.com/-m6fwiuwI8Po/YIq3jWw9-BI/AAAAAAAAFCY/imBFonSH3JAHWIvBJcO7j695aTZKrssGgCLcBGAsYHQ/s661/Untitled%2BDiagram.jpg)
A DaemonSet ensures that all (or some) Nodes run a copy of a Pod.