Before You Start

Kubernetes has a steep learning curve. Not because it’s complex — because it combines many things you might not know yet:

  • Containers (Docker)
  • Networking (Services, Ingress)
  • YAML (lots of YAML)
  • Command line tools

Make sure you’re comfortable with Docker first.

The Learning Path I Wish I’d Had

Week 1: Concepts Only

Don’t touch a cluster yet. Read:

  • Kubernetes Architecture (Control plane, Nodes, Pods)
  • What problems Kubernetes solves
  • The vocabulary: Deployment, Service, Ingress, ConfigMap, Secret

Resources:

  • Kubernetes Documentation (kubernetes.io) — surprisingly good for concepts
  • “Kubernetes Up and Running” — chapters 1-4

Week 2: Your First Cluster

Minikube or Kind. Local, no cost, no fear of breaking production.

# Install minikube
brew install minikube

# Start your cluster
minikube start

# Deploy something
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80

Break it. Fix it. Break it again.

Week 3: Real Workloads

Deploy something you actually care about:

  • A web application with a database
  • A background worker
  • A cron job

Learn these resources:

  • Deployment: Replicated pods, rolling updates
  • Service: Internal networking
  • Ingress: External access
  • ConfigMap/Secret: Configuration

Week 4: Production Readiness

  • Resource limits (CPU, memory)
  • Health checks (liveness, readiness probes)
  • Persistent storage (PersistentVolume, PersistentVolumeClaim)
  • Logging and monitoring

Common Mistakes

Mistake 1: Skipping Resource Limits

# Don't do this
resources: {}  # No limits = no control

# Do this
resources:
  limits:
    memory: "256Mi"
    cpu: "500m"
  requests:
    memory: "128Mi"
    cpu: "250m"

Mistake 2: Using Latest Tags

# Bad
image: myapp:latest

# Good
image: myapp:v1.2.3

Mistake 3: Ignoring Namespaces

Use namespaces to separate environments and teams. Don’t put everything in default.

Tools That Helped Me

ToolPurpose
k9sTerminal UI for Kubernetes
LensGUI for cluster management
kubectl aliasesSpeed up common commands
kube-ps1Show current context in shell

The Insight

Kubernetes isn’t about containers. It’s about declarative state.

You tell Kubernetes what state you want, and it makes it happen. Pods crash? Kubernetes restarts them. Nodes fail? Kubernetes reschedules pods.

That’s the mental model shift that made everything click for me.

Final Advice

Start small. One cluster, one application. Learn by breaking things.

The Kubernetes documentation is better than you think. Read it.