Skip to main content
← Writing

Kubernetes · AWS · Production

Kubernetes Notes from a Payroll Platform on EKS

2025-11-02 · 7 min

OOM cascades, CoreDNS friction, and a backward-incompatible rollout — what we changed after each incident.

These are condensed notes from running a payroll-shaped workload on AWS EKS. No heroics — just the incidents that forced better defaults.

OOMKilled cascade

One PDF-heavy service leaked under large documents. Pods restarted, neighbors thrashed, the namespace felt haunted.

Change: treat the gap between request and limit as a signal. When usage hugs the limit, you are already in the blast radius. Profile the burst path; do not only "raise the limit and pray."

CoreDNS friction

Random multi-second timeouts. Not every request — enough to poison trust.

Change: scale CoreDNS, NodeLocal DNSCache, tighten ndots so every call does not search the galaxy. DNS is part of your SLO whether you named it or not.

Rolling update with a silent contract break

A serialization change passed CI and failed the fleet.

Change: canary + automatic rollback, contract tests between services, shadow traffic before full promote.

Kubernetes gives levers. Strategy is still on you.