Make a DaemonSet schedule a pod on the master node(s)
Who hasn’t been building a small Pi-based Kubernetes cluster at home?
Well, on mine I wanted to deploy a DaemonSet with node_exporter for my external Prometheus service to scrape metrics of each node in the cluster, so I wrote up a DaemonSet manifest and applied it to my cluster. On first glance everything seemed happy, but quickly I noticed that the master node was not running a node-exporter pod!
A quick Stack Overflow search led me to this answer and informed me that since Kubernetes 1.6 you have to add a toleration to the Pod spec section of your DaemonSet manifest:
tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule
I added this, and my master node was now running a node-exporter pod—just as I wished.