01
Four objects carry the first month
Deployment, Service, ConfigMap and Secret. Everything else — operators, service meshes, custom resources — is a solution to a problem you have not encountered yet, and adopting it early hides the primitives you need to debug.
02
Requests and limits are not optional
Unset resource requests make the scheduler guess and make failures non-deterministic. Set them from observed usage, then treat the eviction and throttling behaviour as feedback rather than noise.
03
Probes describe your definition of healthy
A liveness probe that hits a static endpoint proves the process is running, not that it works. Point readiness at the dependencies a request actually needs, and keep liveness cheap enough to run every few seconds.
04
Debug with events before logs
Most first-month failures — image pull errors, failed mounts, unschedulable pods — never reach application logs. Read the events on the object; they name the cause directly.