<p>I want to deploy a DaemonSet for monitoring purpose. So these Pods need to be deployed in all Nodes.</p>

<blockquote>
  <p>A DaemonSet ensures that all (or some) Nodes run a copy of a Pod.</p>
</blockquote>

<p>I am using a DaemonSet so that all nodes get a copy.</p>

<pre><code>    spec:
      containers:
      - name: fluentd
        image: aerocloud.io/containers/fluentd:0.0.1
        volumeMounts:
        - name: varlog
          mountPath: /var/log
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
</code></pre>

<p>When I'm creating this <code>DaemonSet</code> in my Kubernetes cluster, I don't see Pod running in my master node.</p>

<p>Pod for this DaemonSet are running in all nodes except Master node.</p>

<p>What am I missing here? How can I enforce scheduler to schedule a Pod in Master node?</p>

<p>Since Kubernetes 1.6, DaemonSets do not schedule on master nodes by default. In order to schedule it on master, you have to add a toleration into the Pod spec section:</p>

<pre><code>tolerations:
- key: node-role.kubernetes.io/master
  effect: NoSchedule
</code></pre>

<p>For more details, check out the example YAML files in <a href="https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/" rel="noreferrer">Kubernetss DeamonSet docu</a>. It is also mentioned in the chapter <em>How Daemon Pods are Scheduled</em>.</p>
