Key Concepts
DaemonSet
Node Selector
Tolerations
Rolling Update
Required Permissions
DaemonSet Status Values
DaemonSet Metrics
How to View DaemonSets
Select Cluster
Select Namespace
Filter and Search
How to View DaemonSet Details
Find the DaemonSet
Click DaemonSet Name
Review Details
- Pod distribution across nodes
- Container specifications
- Update strategy configuration
- Node selector and tolerations
- Labels and annotations
How to Restart a DaemonSet
Restart triggers a rolling restart of pods on all nodes.Find the DaemonSet
Open Actions Menu
Click Restart
Monitor
kubectl.kubernetes.io/restartedAt annotation. Pods are updated one node at a time by default.How to Create a DaemonSet
Click Create DaemonSet
Write YAML
Select Namespace
Create
How to Edit a DaemonSet
Open Actions Menu
Click Edit YAML
Modify Spec
- Container image (triggers rolling update)
- Resource requests/limits
- Environment variables
- Node selector or tolerations
Save
How to Delete a DaemonSet
Open Actions Menu
Click Delete
Confirm
Update Strategies
DaemonSets support two update strategies:maxUnavailable- Maximum pods that can be unavailable during update (default: 1)maxSurge- Maximum extra pods that can be created during update (optional)
Node Selection
DaemonSets use node selectors and tolerations to control pod placement: Node Selector:Troubleshooting
DaemonSet shows 0 desired pods
DaemonSet shows 0 desired pods
- No nodes match the node selector
- All matching nodes are tainted and DaemonSet lacks tolerations
- Check node labels match the DaemonSet’s node selector
- Verify tolerations for any taints on target nodes
Pods not running on some nodes
Pods not running on some nodes
- Node may have taints that pods don’t tolerate
- Node may not match the node selector
- Node may have insufficient resources
- Check node conditions and taints
Misscheduled pods (pods where they shouldn't be)
Misscheduled pods (pods where they shouldn't be)
- Node selector was changed after pods were scheduled
- Manually created pods matching the selector
- Delete misscheduled pods or update the selector
Rolling update taking too long
Rolling update taking too long
maxUnavailableset too low (default is 1)- Pods taking long to become ready
- Check pod events and logs for startup issues
- Consider increasing
maxUnavailablefor faster updates
Pods keep restarting on nodes
Pods keep restarting on nodes
- Check container logs for crash reasons
- Verify resource limits aren’t too restrictive
- Check if readiness/liveness probes are misconfigured
- Ensure required volumes (hostPath, ConfigMaps) exist on nodes
DaemonSet not running on new nodes
DaemonSet not running on new nodes
- New node may not match node selector
- New node may have taints
- Check if DaemonSet controller is healthy
- Verify the new node is in Ready state
FAQ
How is a DaemonSet different from a Deployment?
How is a DaemonSet different from a Deployment?
Can I run DaemonSet pods on master/control-plane nodes?
Can I run DaemonSet pods on master/control-plane nodes?
node-role.kubernetes.io/control-plane:NoSchedule taint.How do I limit DaemonSet to specific nodes?
How do I limit DaemonSet to specific nodes?
nodeSelector to match nodes with specific labels, or use nodeAffinity for more complex selection rules.What happens when I add a new node?
What happens when I add a new node?
Can I scale a DaemonSet?
Can I scale a DaemonSet?
What's the difference between OnDelete and RollingUpdate?
What's the difference between OnDelete and RollingUpdate?
How do I update pods one node at a time?
How do I update pods one node at a time?
maxUnavailable: 1 (the default). This ensures only one pod is updated at a time across the cluster.Why doesn't my DaemonSet have pods on all nodes?
Why doesn't my DaemonSet have pods on all nodes?