<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kubernetes in production on Tom Meurs</title>
    <link>https://tommeurs.nl/en/series/kubernetes-in-production/</link>
    <description>Recent content in Kubernetes in production on Tom Meurs</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© Tom Meurs</copyright>
    <lastBuildDate>Tue, 28 Apr 2026 19:45:00 +0100</lastBuildDate>
    <atom:link href="https://tommeurs.nl/en/series/kubernetes-in-production/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Simulation, Emulation, Virtualization, and Containers: The Restaurant Metaphor</title>
      <link>https://tommeurs.nl/en/posts/simulation-emulation-virtualization-containers/</link>
      <pubDate>Mon, 23 Feb 2026 20:18:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/simulation-emulation-virtualization-containers/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Simulation models a thing without running it. Emulation runs it by rebuilding the hardware in software. Virtualization runs several complete operating systems on one machine. Containers run several apps on one kernel. Below, one restaurant per term, a table, and the four mix-ups I hear most.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;So what&amp;rsquo;s the difference between a container and a virtual machine?&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;I get this question a lot, usually from someone smart who&amp;rsquo;s been nodding along in meetings and doesn&amp;rsquo;t quite want to admit they&amp;rsquo;re fuzzy on it. The honest answer is that most explanations make it worse. They open with &amp;ldquo;hypervisor&amp;rdquo;, &amp;ldquo;kernel sharing&amp;rdquo; and &amp;ldquo;hardware abstraction&amp;rdquo;, and now the person has four new terms to be confused about instead of one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>When not to use Kubernetes</title>
      <link>https://tommeurs.nl/en/posts/when-not-to-use-kubernetes/</link>
      <pubDate>Sat, 17 Jan 2026 10:00:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/when-not-to-use-kubernetes/</guid>
      <description>&lt;p&gt;I write a lot about Kubernetes, and I run it at home every day. I like it.&lt;/p&gt;&#xA;&lt;p&gt;So it might surprise you that I spend a fair amount of my time talking people out of it.&lt;/p&gt;&#xA;&lt;p&gt;The situation I keep walking into goes like this. A small team, one product, a roadmap full of features customers are waiting for, and someone has decided the first milestone is a Kubernetes cluster. Three nodes minimum, etcd, a &lt;span class=&#34;def&#34; tabindex=&#34;0&#34; data-def=&#34;Container Network Interface: the plugin contract Kubernetes uses to give a pod its network. Cilium, Calico and Flannel are implementations of it.&#34;&gt;CNI&lt;/span&gt;&#xA;, an ingress controller, cert-manager, a monitoring stack. Weeks of work before a single customer sees anything. Everyone nods along, because that&amp;rsquo;s what a serious setup is supposed to look like.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Data-Driven Kubernetes Migration: Why You Need Metrics Before You Move</title>
      <link>https://tommeurs.nl/en/posts/kubernetes-resource-sizing/</link>
      <pubDate>Sun, 08 Feb 2026 14:00:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/kubernetes-resource-sizing/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; An e-commerce client moved a PHP monolith to EKS in October, two weeks before Black Friday, with resource limits guessed from the old server specs. Mid-morning the pods hit their memory limit, died in a loop for four hours, and the estimate was €240,000 in lost revenue. The second half is how to get those numbers from load tests and VPA recommendations instead of guessing them.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;We want to migrate to Kubernetes by November.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes High Availability: Stacked vs External etcd Explained</title>
      <link>https://tommeurs.nl/en/posts/kubernetes-high-availability-etcd/</link>
      <pubDate>Wed, 15 Jan 2025 20:23:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/kubernetes-high-availability-etcd/</guid>
      <description>&lt;p&gt;The first &amp;ldquo;production&amp;rdquo; Kubernetes cluster I ran had a single control plane node. It hummed along happily for weeks, right up until a disk failed and took the whole thing with it. Every pod, every service, gone. That outage taught me what &amp;ldquo;single point of failure&amp;rdquo; actually feels like, and it pushed me toward a question that I keep seeing trip people up: when you build a cluster that survives node loss, do you run etcd on your control plane nodes, or on dedicated nodes of its own?&lt;/p&gt;</description>
    </item>
    <item>
      <title>How etcd Actually Works: The Heart of Your Kubernetes Cluster</title>
      <link>https://tommeurs.nl/en/posts/etcd-deep-dive/</link>
      <pubDate>Mon, 27 Jan 2025 21:47:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/etcd-deep-dive/</guid>
      <description>&lt;p&gt;When something goes wrong in Kubernetes, the trail usually leads back to etcd. API server timing out? Check etcd. Pods stuck in pending? Might be etcd. Cluster feels sluggish? Probably etcd.&lt;/p&gt;&#xA;&lt;p&gt;For a long time I treated etcd the way most operators do: as a black box that hums along next to the control plane. &amp;ldquo;The database.&amp;rdquo; You back it up and otherwise leave it alone. But black boxes feel like splinters to me, and the first time an etcd cluster fell over at 2am I realised I had no idea what I was actually looking at. So I learned. And it turns out the whole thing is built on a handful of ideas that, once they click, make most etcd problems diagnosable instead of terrifying.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Graceful Degradation in Kubernetes: What Happens When Components Fail</title>
      <link>https://tommeurs.nl/en/posts/kubernetes-graceful-degradation/</link>
      <pubDate>Thu, 20 Feb 2025 14:22:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/kubernetes-graceful-degradation/</guid>
      <description>&lt;p&gt;Everyone repeats the line that Kubernetes is self-healing. Pods die, they come back. Nodes drop, workloads reschedule. The system reconciles itself toward the state you declared, and most days you never have to think about it.&lt;/p&gt;&#xA;&lt;p&gt;Then one day the thing doing the healing is the thing that broke. The API server is down. etcd won&amp;rsquo;t respond. The scheduler is wedged. Now what?&lt;/p&gt;&#xA;&lt;p&gt;This is the question I actually care about, because &amp;ldquo;self-healing&amp;rdquo; is only useful if I understand its edges. I want to know what degrades gracefully and what takes the whole cluster with it. So I&amp;rsquo;ve run my clusters through a lot of failures on purpose: planned, unplanned, and a few &amp;ldquo;hold my beer&amp;rdquo; experiments on hardware I didn&amp;rsquo;t mind losing. Here is what actually happens when each piece breaks, and why most of it matters less than people fear.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unbreakable - My Fascination.</title>
      <link>https://tommeurs.nl/en/posts/unbreakable/</link>
      <pubDate>Tue, 23 Dec 2025 20:00:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/unbreakable/</guid>
      <description>&lt;p&gt;As a kid I called the things that fascinated me &lt;strong&gt;unbreakable&lt;/strong&gt;. Indestructible never fit, because indestructible means it never breaks. Unbreakable means it keeps working &lt;em&gt;after&lt;/em&gt; it breaks.&lt;/p&gt;&#xA;&lt;p&gt;I know exactly when it started. A photo of an A-10 Thunderbolt II back from a mission with half a wing gone, the tail in tatters and the fuselage full of holes. It still brought its pilot home.&lt;/p&gt;&#xA;&lt;p&gt;Luck had nothing to do with it. Somebody sat at a drawing board years before that mission and decided the plane had to come home looking like that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chaos Engineering: Breaking Your Cluster to Make It Stronger</title>
      <link>https://tommeurs.nl/en/posts/chaos-engineering-kubernetes/</link>
      <pubDate>Tue, 28 Apr 2026 19:45:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/chaos-engineering-kubernetes/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Chaos engineering is breaking your own cluster on purpose, with the hypothesis written down first and a rollback ready. I run it on the homelab with Litmus: a weekly pod-delete, a monthly node drain, a game day every quarter. So far it has found four things the dashboard would never have shown me.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;My dashboard is a wall of green. Pods running, replicas matched, CPU comfortable, no alerts firing. I look at it and get that small hit of &amp;ldquo;everything&amp;rsquo;s fine.&amp;rdquo; And mostly it is. The cluster&amp;rsquo;s been up for weeks and nothing has fallen over.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running Kubernetes Offline: Edge Computing Without Internet</title>
      <link>https://tommeurs.nl/en/posts/kubernetes-offline-edge/</link>
      <pubDate>Tue, 04 Mar 2025 20:47:00 +0100</pubDate>
      <guid>https://tommeurs.nl/en/posts/kubernetes-offline-edge/</guid>
      <description>&lt;p&gt;What happens when your Kubernetes cluster can&amp;rsquo;t reach the internet? I don&amp;rsquo;t mean a slow connection. I mean no connection at all. Ships at sea. Remote mining sites. Factory floors with air-gapped networks. Military deployments.&lt;/p&gt;&#xA;&lt;p&gt;For a lot of people that sounds exotic, like a problem someone else has. I treat it as a baseline design requirement, and I&amp;rsquo;ll explain why it makes my homelab better even though I almost never actually pull the cable.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
