Checklists / kubernetes-production
Kubernetes Production Readiness Checklist
Before a workload takes production traffic: resources, probes, limits, and failure behavior all decided.
9 steps · 9 required · last reviewed (next review 2027-03-19) · updated 2026-09-21
Related focus areas:CloudOpsPlatform EngineeringSRE
Roadmaps covering the same ground:AWS Security ImprovementCloud Cost OptimizationIncident Management MaturityObservability MaturityPlatform Engineering AdoptionProduction-Ready KubernetesResilience and DR ImprovementSRE Adoption
This is the "will it survive contact with production" review for any workload moving onto Kubernetes. Kubernetes fails workloads in specific, well-understood ways — OOMKills, crash loops, evictions, terminated-but-not-drained — and every item here closes one of those.
If a box cannot be checked, that is not a blocker per se — it is a decision you are making implicitly. Write down which ones you are consciously deferring.
Requests and limits are set for CPU and memory
requiredWithout requests the scheduler places pods blindly; without limits one leaky container takes the node down with it.
Liveness and readiness probes exist and test different things
requiredReadiness pulls a pod from rotation when it cannot serve; liveness restarts it when it cannot recover. Mixing them up causes outage-inducing restart loops.
PodDisruptionBudgets protect the service during node drains and upgrades
requiredA voluntary disruption (upgrade, drain) must not drop availability below your floor — without a PDB, the cluster will happily kill all replicas at once.
More than one replica runs, across different nodes
requiredOne replica on one node means every node maintenance is an outage.
Horizontal Pod Autoscaling is configured (or deliberately not)
requiredTraffic spikes are when users care most; either scale automatically or document why manual scaling is fast enough.
Resource quotas and namespace limits exist for shared clusters
requiredWithout quotas, one team's test load-starves another team's production within the same namespace economics.
Container images are pinned by digest, not :latest
requiredA floating tag means today's deploy and yesterday's rollback may be different binaries you never reviewed.
Secrets come from a secret manager, not base64 in git
requiredBase64 is encoding, not protection — and git history is forever.
Stateful workloads have a story for storage, backup, and restore
requiredKubernetes will reschedule your pod to another node; whether your data follows is a decision you make now, not during the incident.
Run it against your real gaps
A checklist is most useful when you know which controls you are actually missing. A free OpsRoadmaps assessment scores your controls with explainable findings and builds a roadmap from the results.
Assess my stackChecklists document self-reported practice. Items were last reviewed 2026-09-19 — adapt them to your own environment.