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

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

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.

    1. apiVersion: apps/v1
    2. kind: DaemonSet
    3. metadata:
    4. name: ds-one
    5. spec:
    6. selector:
    7. matchLabels:
    8. system: DaemonSetOne
    9. template:
    10. metadata:
    11. labels:
    12. system: DaemonSetOne
    13. spec:
    14. containers:
    15. - name: nginx
    16. image: nginx:1.15.1
    17. ports:
    18. - containerPort: 80
    19. nodeSelector:
    20. 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:

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training