In Part 1, we created and validated an etcd snapshot while an nginx Deployment existed. Now we deliberately remove that workload, restore the snapshot, reconfigure the static etcd Pod, troubleshoot the problems that appear, and bring etcd back to a ...
This is Part 1 of a two-part series.
In this part, the focus is entirely on the backup side of the disaster-recovery exercise:
understanding what etcd does;
verifying the Kubernetes control plane;
locating the static etcd manifest;
understanding...
This post documents a real debugging session that started with a simple symptom — example.com wouldn't load — and ended up uncovering several separate, unrelated problems layered on top of each other. It's written to walk through the actual diagnosti...
Today's goal: take a simple Flask app running in Kubernetes and expose it to the outside world using Ingress, instead of relying on NodePort or LoadBalancer services. This post walks through the setup, the errors I hit along the way, and how each one...
Today I learned one of the most confusing Kubernetes concepts for beginners: PersistentVolumes PV and PersistentVolumeClaims PVC.
At first, my PVC refused to bind and stayed in the Pending state. After some troubleshooting, I finally got everything ...
If you've ever wondered, "How do I stop my pods from randomly talking to everything in my cluster?" – this is the post for you.
Today, I dove into Kubernetes Network Policies – the way you control who can talk to whom inside your cluster. I started ...
Most of us learn about Kubernetes users before we learn about Service Accounts. That's actually where the confusion starts Service Accounts end up looking like "just another kind of user," and you file them away without really getting what makes them...
Yesterday I learned about Roles and RoleBindings. Today I explored ClusterRoles and ClusterRoleBindings for cluster-scoped resources like Nodes.
Why a Role Wasn't Enough
kubectl auth can-i get nodes
Output:
Warning: resource 'nodes' is not names...
One thing I discovered today is that before Kubernetes can decide what you're allowed to do, it first needs to know who you are.
That means there are two separate steps:
1. Authentication – Proving your identity using a client certificate.
2. Autho...
Today's challenge was about understanding how Kubernetes uses TLS certificates to secure communication between its components, and getting hands-on by onboarding a "new user" into the cluster using a Certificate Signing Request CSR.
If you've ever...
Today's mission: stop hardcoding values into pod manifests and learn how to inject them properly using ConfigMaps and Secrets. I also managed to break a few things along the way, which honestly taught me more than if everything had just worked first ...
If you've ever wondered how Kubernetes knows when to spin up more pods or give a pod more memory, that's autoscaling — and it's one of those concepts that sounds intimidating until you actually do it yourself. Day 17 of the #40DaysOfKubernetes challe...
What this is about
Today’s mission was simple on paper:
Teach Kubernetes how to handle memory politely.
In reality:
Kubernetes behaved like a strict landlord, and my containers learned consequences.
We explored:
memory requests what you ask for
...
Introduction
Looping errors in a caching matrix in R can lead to infinite loops, inefficient computations, and performance bottlenecks. These errors often arise due to improper indexing, recursive calls without base cases, or mismanaged caching mec...