# Kubernetes
All Kubernetes notes →1 — Pods
Why a Pod, not a container, is the atomic unit of scheduling — containers sharing a Pod share network namespace and IPC but never share a lifecycle.
2 — Labels, Selectors & Annotations
Labels are indexed and queryable for selection and grouping; annotations hold non-identifying metadata the scheduler never selects on.
3 — ReplicaSets
A ReplicaSet only guarantees replica count and pod-template match — it has no concept of rollout history, which is why Deployments layer on top of it.
4 — Deployments
Deployments add rollout history and rollback on top of ReplicaSets by keeping old ReplicaSets scaled to zero instead of deleting them.
5 — StatefulSets
StatefulSets trade the Deployment's disposable-replica model for stable pod identity and ordinal-indexed PersistentVolumeClaims that survive rescheduling.
6 — DaemonSets
DaemonSets bind pod placement to node lifecycle rather than replica count — one pod per matching node, added and removed as nodes join or leave the cluster.
7 — Jobs & CronJobs
Jobs track completion count rather than desired replica count, which is why a CrashLoopBackOff in a Job looks nothing like one in a Deployment.
8 — Namespaces
Namespaces partition names and quota, not network or security — RBAC and NetworkPolicy have to be added explicitly, isolation is never implied by the namespace boundary alone.
9 — Resource Management (Requests, Limits, QoS)
The scheduler only reads requests, never limits — the requests-to-limits ratio instead decides the pod's QoS class, which is what actually governs eviction order under node pressure.