livinstone.dev / blog
The Blog
Hands-on articles about Kubernetes, Terraform, GitOps, observability, and cloud infrastructure — based on things I've actually built and broken in production.
19 articles published
Writing Kubernetes Runbooks That Actually Get Used During Incidents
Most runbooks are written once, stored somewhere, and never opened again — especially during the incidents they were meant to help with. This article covers how to write Kubernetes runbooks that engineers actually reach for at 2 AM.
Kubernetes Resource Management: Requests, Limits, LimitRanges, and QoS Classes
Resource requests and limits are the single most impactful configuration decision in a Kubernetes cluster. Get them wrong and you get OOMKilled pods, noisy neighbours, unreliable scheduling, and wasted spend. This article explains how to get them right.
Kubernetes Pod Lifecycle: From Scheduling to Termination
Everything that happens between kubectl apply and a running pod — and between a delete command and a clean shutdown. Understanding the full pod lifecycle is what separates engineers who debug Kubernetes quickly from those who guess.
What I Wish I'd Known About Kubernetes Reliability From Day One
The reliability mindset that took years to develop: how to think about SLOs in a Kubernetes environment, failure modes that repeat, capacity planning in a dynamic system, and the on-call experience that changes how you build everything.
Full Observability Stack on Kubernetes: Prometheus, Grafana, Loki, and Alertmanager with Helm
A step-by-step guide to deploying a complete observability stack on Kubernetes using Helm — covering metrics with Prometheus, visualisation with Grafana, log aggregation with Loki, and real alerting with Alertmanager.
The Operational Patterns Kubernetes Won't Teach You — But Production Will
Beyond the basics: the operational patterns that only emerge after running Kubernetes in production. Graceful shutdown, pod disruption budgets, anti-affinity rules, namespace strategy, and the kubectl commands that become muscle memory.
Kubernetes RBAC Hardening: From Cluster-Admin to Least Privilege
Most Kubernetes clusters start with everything running as cluster-admin. This article walks through how to progressively harden RBAC — implementing namespace-scoped roles, service account restrictions, and audit logging.
What Years of Using Kubernetes Taught Me That the Documentation Never Could
Documentation taught me how Kubernetes works. Production taught me why it works the way it does — and why that difference changed how I think about infrastructure.
FeaturedWhy HPA Wasn't Enough: Scaling Kubernetes on ALB Metrics with KEDA
HPA was watching CPU and memory. The pods were I/O-bound — stuck waiting on a down dependency — so CPU stayed at 45% while 502s piled up. The ALB had the right signal the whole time. We just needed something to read it.