Kubernetes Deployments, StatefulSets, and DaemonSets 👇
First, they're all higher-level Controllers. What this means is instead of deploying a Pod by itself, it's managed by a higher-level Controller.
The Controller gives the ability to have reconciliation loops, which confirm that the current state is the desired state of the workload. You may know this as "self-healing".
Let's break down each:
✅ Deployments
1. The most common for stateless applications.
2. Self-healing capabilities.
3. Pretty common method of getting Pods deployed.
4. Use of ReplicaSets available.
✅ StatefulSets
1. Just like a Deployment, except for stateful workloads.
2. Ties a unique ID (network identifier) to each Pod.
3. If a Pod is deleted or shuts down, a new Pod comes up with the same unique ID as the old Pod.
✅ DaemonSets
1. Confirm that one Pod is running on each Worker Node.
2. No ReplicaSets.
3. If you have three Worker Nodes, that means you have three Pods (one on each Worker Node).
#kubernetes #devops #platformengineering