# 
I Tried Learning Kubernetes… Quit in 5 Minutes — Then Came Back and Finally Got It


### 💭 “Maybe This Isn’t For Me…”

I still remember opening my first **Kubernetes** tutorial.

10 minutes in:

*   weird terms
    
*   confusing diagrams
    
*   nothing made sense
    

So I did what most people won’t admit:

👉 I closed it.

And for a moment, I genuinely thought:

> *“Maybe I’m not built for this DevOps stuff.”*

* * *

## ⚡ The Problem Wasn’t Kubernetes

It took me a while to realize this:

> The problem wasn’t Kubernetes…  
> It was how I was trying to learn it.

I was jumping straight into:

*   commands
    
*   YAML files
    
*   random tutorials
    

Without understanding one basic thing:

👉 **Why Kubernetes even exists**

* * *

## ❓ The Question That Changed Everything

Instead of asking:

> “How does Kubernetes work?”

I asked:

> **“What problem is Kubernetes solving?”**

And suddenly… everything became clearer.

* * *

## 🔥 The Reality No One Explains Properly

Let’s be honest:

*   Running 1 container → easy
    
*   Running 5 containers → fine
    
*   Running 50+ containers → chaos
    

Things break.  
Traffic spikes.  
Apps crash.  
Manual fixes don’t scale.

👉 That’s where Kubernetes comes in.

Not to impress you.  
Not to complicate things.

👉 But to **handle chaos automatically**

* * *

## 🧠 The One Idea That Made Everything Click

This is the line that changed how I see Kubernetes:

> “You don’t manage containers anymore…  
> you define what you want, and Kubernetes maintains it.”

Example:

*   You want 3 instances
    
*   One crashes → Kubernetes replaces it
    

No panic. No manual fixing.

👉 This is called **Desired State**

Once this clicked, Kubernetes stopped feeling random.

* * *

## The Architecture

![](https://cdn.hashnode.com/uploads/covers/692d8ddb4ddaff05a5eb8006/d2607650-c138-4301-b4ce-f5ab0cf7c863.png align="center")

*   Control Plane → brain
    
*   Worker Nodes → do the work
    

👉 That’s enough for a beginner.

* * *

## Where I Actually Started

I used:  
👉 **Kind**

*   simple
    
*   fast
    
*   beginner-friendly
    

Started with:

*   cluster setup
    
*   namespaces
    
*   pods
    

👉 This part felt easy.

* * *

## 🔥 The First “Aha” Moment

### 👉 Deployments > Pods

![](https://cdn.hashnode.com/uploads/covers/692d8ddb4ddaff05a5eb8006/2d4a9099-e161-467a-9ba6-86d1619fa1f0.png align="center")

Pods are temporary.  
Deployments manage them.

👉 That’s when Kubernetes started making sense.

* * *

## The Frustration Phase

Everything was running…

But I couldn’t access my app.

👉 Reason:  
Pods don’t have stable IPs.

👉 Solution:  
Services.

*   ClusterIP
    
*   NodePort
    
*   LoadBalancer
    
*   Headless
    

* * *

## Where Thinking Starts

![](https://cdn.hashnode.com/uploads/covers/692d8ddb4ddaff05a5eb8006/40f3e015-2061-4bc1-9c06-cfe897aeb4b0.png align="center")

*   Deployment → stateless
    
*   StatefulSet → databases
    
*   DaemonSet → runs everywhere
    

* * *

## 🔐 Small but Important

*   ConfigMaps
    
*   Secrets
    

👉 Keep config separate from code.

* * *

## 🛠️ The Part Where You Actually Learn (Debugging)

At some point, things **will break**.

And this is where Kubernetes actually starts making sense.

### 🔍 First Rule: Don’t Panic

When something fails, follow this:

1.  What is running?
    
2.  What is failing?
    
3.  Why is it failing?
    

👉 Don’t guess. Inspect.

* * *

### ⚠️ Common Errors You’ll Face

#### ❌ CrashLoopBackOff

*   container starts → crashes → restarts
    

👉 Check:

```shell
kubectl logs <pod>
```

* * *

#### ❌ ImagePullBackOff

*   image not found / no access
    

👉 Check:

```shell
kubectl describe pod <pod>
```

* * *

#### ❌ App Not Accessible

*   pod running but no response
    

👉 Usually:

*   service issue
    
*   port mismatch
    

* * *

#### ❌ Probe Failures

*   app keeps restarting
    

👉 Cause:

*   wrong health check
    
*   slow startup
    

* * *

#### ❌ Pending Pods

*   pod not scheduled
    

👉 Cause:

*   insufficient resources
    

* * *

## 🧠 The Debugging Mindset

Don’t memorize commands.

Think in layers:

*   Pod running?
    
*   App working?
    
*   Network correct?
    

👉 Break problems step by step.

* * *

## ⚡ The Only Commands You Really Need

```shell
kubectl get pods
kubectl describe pod <pod>
kubectl logs <pod>
kubectl exec -it <pod> -- /bin/sh
```

## The Hardest Part

![](https://cdn.hashnode.com/uploads/covers/692d8ddb4ddaff05a5eb8006/5c0809e2-790c-438c-849d-ef1ced3fbd8f.png align="center")

Ingress:

*   single entry point
    
*   routes traffic
    

👉 Confusing at first, but powerful.

* * *

## ⚡ Not Optional (Even for Beginners)

*   Resource Requests & Limits
    
*   Liveness & Readiness Probes
    

* * *

## 📊 My Honest Experience

### ✅ Easy

*   architecture
    
*   setup
    
*   pods
    

### ⚠️ Medium

*   deployments
    
*   services
    

### 🔥 Challenging

*   ingress
    
*   debugging
    

* * *

## 🎯 How Much Is Enough?

Focus on:

*   architecture
    
*   deployments
    
*   services
    
*   debugging
    
*   ingress basics
    

👉 That’s enough to start strong.

* * *

## 🧩 The Truth No One Tells You

*   Kubernetes isn’t hard — bad explanations are
    
*   You don’t need to rush
    
*   Breaking things is part of learning
    

* * *

## 🚀 Final Thought

> Kubernetes doesn’t become clear when things work —  
> it becomes clear when things break and you figure out why.
