🧠 Concept 11: DaemonSet (Node-level Workloads πŸ’―)

Image

Image

Image

Image


πŸš€ 1. Core Idea (1-line)

πŸ‘‰ DaemonSet ensures that a Pod runs on EVERY node in the cluster


🧠 2. Why DaemonSet Exists (VERY IMPORTANT ⚠️)

Normal controllers (Deployment, ReplicaSet):

  • Run specific number of pods (e.g., 3, 5)

But sometimes you need:
πŸ‘‰ 1 pod per node


πŸ’‘ 3. Use Cases (REAL-WORLD πŸ”₯)

DaemonSet is used for:

  • πŸ“Š Monitoring agents (Prometheus node exporter)

  • 🧾 Logging agents (Fluentd, Logstash)

  • πŸ” Security agents

  • 🌐 Networking (CNI plugins)

πŸ‘‰ Basically: node-level services


βš™οΈ 4. How It Works

  • New node added β†’ pod automatically deployed

  • Node removed β†’ pod removed

πŸ‘‰ Fully automatic


πŸ”₯ 5. Example Scenario

Cluster:

  • 3 nodes

DaemonSet:
πŸ‘‰ Will run 3 pods (1 per node)

Add 1 node:
πŸ‘‰ Now 4 pods automatically


πŸ“¦ 6. Example YAML

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-monitor
spec:
  selector:
matchLabels:
  app: monitor
  template:
metadata:
  labels:
app: monitor
spec:
  containers:
  - name: monitor
image: node-exporter

🧠 7. Key Difference (IMPORTANT πŸ”₯)

FeatureDeploymentDaemonSet
Pod countFixed numberOne per node
ScalingManualAuto with nodes
Use caseAppsNode services

πŸ’₯ 8. Real-world DevOps Insight

In your stack (SigNoz, Prometheus πŸ‘€):

πŸ‘‰ Node exporter runs via DaemonSet
πŸ‘‰ Collects metrics from each node


⚠️ 9. Advanced Concept (IMPORTANT)

πŸ‘‰ You can control where pods run using:

  • Node selectors

  • Taints & tolerations

Example:

  • Run only on GPU nodes πŸ”₯

⚑ 10. CKA Commands

kubectl get daemonsets
kubectl describe daemonset <name>

πŸ’Ό 11. Interview Answer

πŸ‘‰ β€œDaemonSet ensures that a copy of a Pod runs on all or selected nodes in a Kubernetes cluster, commonly used for logging, monitoring, and node-level services.”


🧠 12. Memory Trick

πŸ‘‰ Deployment = count-based πŸ“Š
πŸ‘‰ DaemonSet = node-based πŸ–₯️


πŸ”₯ 13. Common Mistakes

❌ Using Deployment for node agents
❌ Forgetting DaemonSet auto-scales with nodes
❌ Not using tolerations for special nodes


πŸš€ Next Step

Bol:

πŸ‘‰ β€œnext”

Then we go to:
πŸ”₯ Concept 12: Jobs & CronJobs (Batch + Scheduled Workloads πŸ’―)