What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
If kubectl get ds shows a DaemonSet with DESIRED, CURRENT, and READY all at 0, first check whether any nodes match its selector or affinity and whether their taints are tolerated. In the LFS242 lab report behind this question, the specific issue was a Kubernetes 1.24 kubeadm control-plane taint that the lab manifest did not tolerate. A later ContainerCreating problem in that same cluster was separate and required different checks.
What the zero counts mean
A DaemonSet aims to run a copy of a Pod on each eligible node, not necessarily every node in the cluster. Node labels and the DaemonSet’s node selector or affinity determine which nodes qualify; taints and Pod tolerations also affect scheduling. Kubernetes automatically adds certain tolerations to DaemonSet Pods, including one for the unschedulable taint, but that does not cover every custom taint. See the Kubernetes DaemonSet documentation.
The DaemonSet status fields help separate the stages. DESIRED (the API’s desiredNumberScheduled) is the number of nodes where a daemon Pod should run. CURRENT (currentNumberScheduled) counts nodes running at least one such Pod. READY, AVAILABLE, and UNAVAILABLE report later states of those Pods. Check the DaemonSet API status field definitions when interpreting them.
- DESIRED is 0: Start with node eligibility: selectors, affinity, labels, and taints.
- DESIRED and CURRENT are above 0, but READY is 0: Pods are being assigned, but are not ready. Inspect Pod status, events, resources, and the container template.
- Pods are Pending or stuck in ContainerCreating: Check the Pod and node events, then look at cluster-level runtime and networking health.
Check the DaemonSet and eligible nodes
Run these commands, replacing names and namespaces as needed:
#1 Best Overall
kubectl get ds -A
kubectl describe ds <daemonset> -n <namespace>
kubectl get nodes --show-labels
kubectl describe node <node>
kubectl get pods -A -o wide
If you know the DaemonSet is in your current namespace, you can omit -n. In the original lab discussion, the example DaemonSet was named fluentd-ds in the default namespace.
- Use
kubectl get ds -Ato confirm the DaemonSet exists and identify its namespace. A successful apply message only confirms the object was created; it does not confirm any node can run a Pod. - Use
kubectl describe ds <daemonset> -n <namespace>to review its selector, Pod template, status, and events. - Compare
.spec.template.spec.nodeSelectorand any node affinity rules with the labels shown bykubectl get nodes --show-labels. A selector may intentionally restrict the DaemonSet to a subset of nodes. The Kubernetes guide explains how labeling a newly eligible node can prompt the controller to create a daemon Pod there. - Inspect each relevant node with
kubectl describe node <node>. Compare its taints with the Pod template’s tolerations. A node taint without a matching toleration can keep that node from being eligible for this workload.
What happened in the LFS242 lab report
In a May 2022 Linux Foundation LFS242 class-forum discussion, a learner said the YAML command returned daemonset.apps/fluentd-ds created, but kubectl get ds showed zero for all five workload counts. The discussion identified a Kubernetes 1.24 kubeadm setup that added a node-role.kubernetes.io/control-plane taint not accounted for by the lab instructions. Suggested options in that particular environment were to add a matching toleration to the DaemonSet Pod template or remove the taint.
Treat those as historical troubleshooting options, not general production advice. Before changing a taint, inspect the cluster’s actual taints and its intended control-plane scheduling policy. Confirm the Kubernetes version and current course instructions as well; the report describes a specific lab configuration, not a rule that every zero-count DaemonSet has this cause.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.If the DaemonSet schedules Pods but they do not start
Once DESIRED or CURRENT becomes positive, a Pod that remains Pending or in ContainerCreating is a different problem from a zero desired count. Inspect the Pod and recent events:
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsRank #3
kubectl describe pod <pod> -n <namespace>
kubectl get events -A --sort-by=.lastTimestamp
kubectl get pods -n kube-system
Look for clues such as insufficient node resources, image or container errors, and other startup failures. Kubernetes documents resource shortages and broken Pod templates—including a crashing container or unavailable image—as causes of an unsuccessful DaemonSet rollout in its DaemonSet update troubleshooting guidance.
In the LFS242 thread, the count rose to one, but the DaemonSet Pod remained in Waiting/ContainerCreating. CoreDNS Pods were also stuck in ContainerCreating. A helper suspected a containerd/CNI configuration issue and suggested rebuilding the lab cluster with cri-dockerd and CNI configured; the learner later reported healthy CoreDNS and a working cluster. That account is a troubleshooting outcome from one lab, not proof that containerd or CNI is the universal cause of ContainerCreating.
Quick Recap
Best Value
A quick decision path
- Nothing appears in the expected namespace: Run
kubectl get ds -Aand locate the object before diagnosing its scheduling status. - DESIRED is 0: Inspect node selectors, affinity, node labels, taints, and tolerations. Use DaemonSet and node descriptions to see what is eligible.
- DESIRED is positive but CURRENT is 0 or lower than expected: Check scheduling events, eligible nodes, and whether Pods can be assigned.
- CURRENT is positive but READY or AVAILABLE is 0: Describe the Pods, review events and resource availability, and check image and container startup.
- System Pods also fail to start: Investigate cluster-level runtime and networking symptoms rather than changing DaemonSet selectors blindly.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

