k8s-workloads
Installation
SKILL.md
k8s-workloads
Patterns and decisions for Kubernetes workload resources in self-hosted environments.
Workload Resource Decision
| Resource | Use when | Key trait |
|---|---|---|
| Deployment | Stateless apps (web servers, APIs) | Random Pod names, shared volumes, non-ordered updates |
| StatefulSet | Stateful apps (databases, queues) | Stable ordinal names (db-0, db-1), per-Pod PVCs, ordered updates |
| DaemonSet | One Pod per node (log agents, monitoring, storage managers) | Tied to node lifecycle; use hostPath volumes |
| ReplicaSet | Rarely used directly — Deployment manages it | Lower-level; only if you need custom Pod selection without rollout |
| Job | One-time tasks (migrations, load tests) | Runs to completion; retries on failure |
| CronJob | Recurring tasks (backups, reports) | Generates Jobs on a schedule |
Default choice: Deployment for anything stateless. StatefulSet for databases. CronJob for scheduled tasks.