Welcome to the Linux Foundation Forum!

My Daemonset pod is only created on the master node

I created a Daemonset from the ds.yaml file, but it created only 1 pod in the master node instead of 1 pod in each node. below is my ds.yaml file.

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ds-one
spec:
selector:
matchLabels:
system: DaemonSetOne
template:
metadata:
labels:
system: DaemonSetOne
spec:
containers:
- name: nginx
image: nginx:1.15.1
ports:
- containerPort: 80

Comments

  • give label to your each node.
    for example:
    kubectl label node master system=daemonsetOne
    kubectl label node worker system=daemonsetOne

    Then add nodeSelector in your yaml file.

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: ds-one
    spec:
      selector:
        matchLabels:
          system: DaemonSetOne
      template:
        metadata:
          labels:
            system: DaemonSetOne
          spec:
            containers:
            - name: nginx
              image: nginx:1.15.1
              ports:
              - containerPort: 80
    nodeSelector:
      system: daemonsetOne
    
  • Hi @yemmey,

    The DaemonSet operator is expected to schedule one Pod on each node, without the need of a nodeSelector. The use of the nodeSelector property helps when a DaemonSet is expected to schedule Pods on a subset of the cluster's nodes, which have been pre-labeled accordingly.

    The Pods of a DaemonSet may not be scheduled on a node when the node is tainted, not ready, when it is unschedulable, or when dependencies cannot be met.

    What is the output of the kubectl get nodes -o wide command?

    Regards,
    -Chris

  • Hi @yemmey,

    This output seems ok.
    What output is produced by:

    kubectl get nodes --show-labels

    kubectl get pod -A

    and

    kubectl describe node | grep -i taint

    Regards,
    -Chris

  • Apologies for the late response, here is the feedback below.

    kubectl get nodes --show-labels:

    kubectl get pod -A

    kubectl describe node | grep -i taint

  • Hi @yemmey,

    The output displaying taints is not as expected, according to the installation and configuration steps from lab exercise 3.3. A tainted control-plane node will prevent our pods from being scheduled on the control-plane node unless presenting a matching toleration. This is the reason why the DaemonSet operator only shows one running pod, instead of two.
    Please revisit lab exercise 3.3 to remove the taint.

    Regards,
    -Chris

  • Got it! Thanks so much :smile:

Categories

Upcoming Training