Checklist · Kubernetes

Kubernetes Readiness Checklist

Two checklists in one, first, whether you should adopt Kubernetes at all; second, what to get right if you do. Starts with the honest test most guides skip.

Markdown. No sign-up, no email.

Team: _______________ Date: _______

Part 1: Should you adopt it at all?#

Answer honestly before the rest of this checklist matters. The most expensive Kubernetes mistake is adopting it for a workload that never needed it.

Count the ones that are true:

  • [ ] More services than the team can track by hand (typically a dozen or more)
  • [ ] Genuinely variable load that benefits from automatic scaling
  • [ ] Multiple teams needing isolated, self-service deployment
  • [ ] Strict availability requirements where automatic recovery is worth real money
  • [ ] Portability across environments as an actual requirement, not a slide

Now the other side:

  • [ ] We run a handful of services with steady traffic
  • [ ] One team deploys everything
  • [ ] A managed container service already meets our availability target
  • [ ] Nobody on the team wants to own cluster operations
  • [ ] Our whole estate fits comfortably on two decent servers

If more boxes are ticked in the second group, use a managed container service instead. That is not a compromise: it is the correct answer for a large share of workloads.

Decision: Adopt / Managed service / Virtual machines, Decided by: _______


Part 2: If you are adopting it#

Cluster#

  • [ ] Managed control plane unless there is a specific reason otherwise
  • [ ] Version and upgrade path understood, support windows are short
  • [ ] Upgrade process rehearsed, not assumed
  • [ ] Node pools sized with headroom for rescheduling

Workloads: the three that cause most production problems#

  • [ ] Resource requests and limits set on every workload. Without them one container starves its neighbours
  • [ ] Liveness probe checks that the app actually works, not just that the process is running
  • [ ] Readiness probe distinct from liveness
  • [ ] Graceful shutdown handled, SIGTERM respected
  • [ ] Rolling update strategy set deliberately

Configuration and secrets#

  • [ ] Configuration in ConfigMaps, not baked into images
  • [ ] Secrets in a secret store, not in manifests
  • [ ] Same image promoted through environments
  • [ ] Manifests in version control and applied from there. Cluster state that exists only because someone typed a command cannot be reproduced

State#

  • [ ] Databases are managed services, unless there is a specific reason
  • [ ] Any stateful workload has a tested backup and restore
  • [ ] Persistent volume reclaim policy understood

Security#

  • [ ] Containers run as non-root
  • [ ] Unnecessary capabilities dropped
  • [ ] Read-only root filesystem where possible
  • [ ] Network policy restricting traffic between namespaces
  • [ ] RBAC assigned to groups, not individuals
  • [ ] Images scanned, base images rebuilt regularly

Operations#

  • [ ] Logging, metrics, secrets, certificates and ingress decided once and applied uniformly
  • [ ] Monitoring answers "is the business function working", not just CPU
  • [ ] Rollback tested
  • [ ] Someone can debug a scheduling or networking failure at 3am

Restraint#

  • [ ] No service mesh until something specific hurts
  • [ ] No custom operators until something specific hurts
  • [ ] No multi-cluster federation until something specific hurts

Measure whether it earned its cost#

MeasureBeforeAfter
Merge → serving traffic
Deployment failure rate
Time to restore

If these are not better than what you had, the platform is not earning its cost.

Sign-off#

NameDate
Completed by
Platform owner

Back to Kubernetes

Get new material when it is published

Everything here is free and stays free. There is no form in front of any document. If you want to know when new guides and templates go up, leave an email.

Roughly monthly. Unsubscribe in one click. We do not share your address, and we will not call you.