Production checklist

Kubernetes production checklist: 5 checks before launch

5 checks for running Kubernetes in production: 3 should-dos and 2 good-to-haves. Each one says why it matters, how to verify it and where the docs are.

Updated . Every check links the vendor’s own docs.

Check my repo

Should do (3)

  • Set resource requests and limits on every container

    One noisy pod otherwise starves the whole node.

    Verify from the command line

    Every container should show requests and limits. A LimitRange per namespace sets defaults for anything that forgets.

    kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}/{.metadata.name}{"\t"}{.spec.containers[*].resources}{"\n"}{end}'

    Read more on kubernetes.io

  • Add readiness and liveness probes

    Traffic only reaches pods that are ready, and hung pods get restarted.

    Verify from the command line

    Each Deployment should list both a Liveness and a Readiness probe.

    kubectl describe deployment <name> -n <namespace> | grep -E "Liveness|Readiness"

    Read more on kubernetes.io

  • Least-privilege RBAC for workloads and people

    A compromised pod shouldn’t be able to read every Secret in the cluster.

    Verify from the command line

    A workload’s service account should not be able to read every Secret or use * verbs.

    kubectl auth can-i --list --as=system:serviceaccount:<namespace>:<service-account>

    Read more on kubernetes.io

Good to have (2)

  • Encrypt Secrets at rest

    Secrets are only base64-encoded in etcd by default.

    Check the config

    Self-managed: the API server runs with --encryption-provider-config pointing at a KMS or aescbc provider. Managed clusters: check the provider’s secrets encryption setting.

    Read more on kubernetes.io

  • Restrict pod-to-pod traffic with NetworkPolicies

    By default every pod can reach every other pod.

    Verify from the command line

    Each app namespace should have a default-deny policy plus explicit allows, and your network plugin must enforce NetworkPolicy (Calico, Cilium and others do).

    kubectl get networkpolicy -A

    Read more on kubernetes.io

Get the checklist for your whole stack

Design your stack or map your repo in StackPrism, and the Improve panel lists the checks for every technology on it and keeps track of what you’ve done. Building with an AI app builder? Start with the vibe coding checklist.