ArgoCD GitOps deployment flow

ArgoCD for Beginners: Your First GitOps Deployment

GitOps changed how I think about deployments. Instead of running commands against a cluster, I push to Git and watch the cluster converge to the desired state. It sounds simple, but the implications are profound. ArgoCD is my tool of choice for GitOps. Let me show you why, and how to get started. Why GitOps? The Philosophy First Before diving into ArgoCD, let’s understand why GitOps matters. Traditional deployment: Developer → kubectl apply → Cluster The problem: What is deployed? You have to query the cluster. Configuration drift happens silently. Rollbacks are manual and error-prone. There’s no audit trail beyond “someone ran kubectl.” ...

March 16, 2025 · 6 min read · Tom Meurs
Kubernetes running in offline island mode

Running Kubernetes Offline: Edge Computing Without Internet

What happens when your Kubernetes cluster can’t reach the internet? Not “slow connection” — no connection at all. Ships at sea. Remote mining sites. Factory floors with air-gapped networks. Military deployments. This isn’t an edge case. It’s a design requirement for anyone who takes sovereignty seriously. Why This Matters: Beyond the Technical Running Kubernetes offline forces you to confront a question most cloud-native guides ignore: what are you actually depending on? ...

March 4, 2025 · 7 min read · Tom Meurs
Kubernetes graceful degradation visualization

Graceful Degradation in Kubernetes: What Happens When Components Fail

Kubernetes is designed to be self-healing, but what does that actually mean? More importantly: what happens when the components doing the healing themselves fail? I’ve run Kubernetes clusters through all kinds of failures — planned, unplanned, and “hold my beer” experiments. Here’s what actually happens when things break. The Components That Can Fail Before diving into failure scenarios, let’s map out what we’re working with: Control Plane: kube-apiserver: The API that everything talks to etcd: The database storing all cluster state kube-scheduler: Decides where pods run kube-controller-manager: Runs controllers (ReplicaSet, Deployment, etc.) cloud-controller-manager: Cloud provider integrations (if applicable) Node Components: ...

February 20, 2025 · 6 min read · Tom Meurs
Kubernetes Network Policies visual guide

Kubernetes Network Policies: A Visual Guide to Pod Security

Kubernetes Network Policies are one of those features that everyone knows they should use but few actually understand. The YAML looks intimidating, the behavior is non-intuitive, and the mental model takes time to develop. I’ve spent hours debugging policies that “should work” but didn’t. Let me save you that pain with a visual approach to understanding Network Policies. The Default: Everything Talks to Everything By default, Kubernetes allows all pod-to-pod communication. Any pod can reach any other pod across any namespace. This is convenient for getting started but terrible for security. ...

February 8, 2025 · 6 min read · Tom Meurs
etcd deep dive internals

etcd Deep Dive: The Heart of Your Kubernetes Cluster

When something goes wrong in Kubernetes, it’s often etcd. API server timing out? Check etcd. Pods stuck in pending? Might be etcd. Cluster feels slow? Probably etcd. Yet most Kubernetes operators treat etcd as a black box. It’s just “the database” that runs alongside the control plane. But understanding etcd makes you dramatically better at operating Kubernetes. Let me take you inside. What is etcd? etcd is a distributed key-value store. Think of it as a highly reliable dictionary that multiple servers agree on. Kubernetes uses it to store all cluster state: every pod, deployment, secret, configmap, and custom resource lives in etcd. ...

January 27, 2025 · 6 min read · Tom Meurs