Back to all scenarios
Scenario #20
Cluster Management
K8s v1.24, DaemonSet-based node config

Node Labels Accidentally Overwritten by DaemonSet

A DaemonSet used for node labeling overwrote existing labels used by schedulers.

Find this helpful?
What Happened

A platform team deployed a DaemonSet that set node labels like zone=us-east, but it overwrote custom labels like gpu=true.

Diagnosis Steps
  • 1Pods no longer scheduled to GPU nodes.
  • 2kubectl get nodes --show-labels showed gpu label missing.
  • 3Checked DaemonSet script – labels were overwritten, not merged.
Root Cause

Label management script used kubectl label node <node> key=value --overwrite, removing other labels.

Fix/Workaround
• Restored original labels from backup.
• Updated script to merge labels.
Lessons Learned

Node labels are critical for scheduling decisions.

How to Avoid
  • 1Use label merging logic (e.g., fetch current labels, then patch).
  • 2Protect key node labels via admission controllers.