Kubernetes from Zero to Hero – Part 1

Manas UpadhyayManas Upadhyay
4 min read

The Problem Before Kubernetes

Before understanding what Kubernetes is, let’s rewind a bit.

1. The Old World: Monolithic Applications

Back in the day, applications were developed as a single block of code, known as a monolith. Think of a traditional web app that has:

  • Frontend (UI)

  • Backend (business logic)

  • Database access

  • Authentication

  • Email service

All of it bundled into one application, deployed on a single server. Easy to start, but very hard to scale or maintain. If the app crashes, everything goes down. If one part needs to change, you re-deploy the whole thing.

❌ Slow deployments

❌ Difficult to scale specific components

❌ High risk of failure

❌ Poor maintainability


2. Then Came Containers & Microservices

To solve this, we moved to microservices — breaking the monolith into smaller services, each doing one job. Then came Docker, which allowed these services to run inside containers — lightweight, isolated environments that run consistently across machines.

Now we could have:

  • UI in one container

  • Backend in another

  • DB in another

  • Email worker in another

But here’s the catch…

Who manages all these containers?

What happens if a container crashes?

How do you restart it?

How do you scale it when traffic increases?

You’d soon end up with hundreds of containers running across multiple servers (called “nodes”). Managing them manually? Impossible.


💡 Enter: Kubernetes

Kubernetes (often abbreviated as K8s) is an open-source container orchestration platform. It helps you:

🔧 Task✅ Kubernetes Does It
Start and stop containers✅ Yes
Restart failed containers✅ Yes
Scale containers dynamically✅ Yes
Load balance traffic✅ Yes
Perform rolling updates✅ Yes
Manage configuration & secrets✅ Yes
Self-heal crashed apps✅ Yes

🛳️ Shipping Analogy

Imagine containers are like shipping containers on cargo ships. Kubernetes is the harbor master that:

  • Decides where containers go (which ship/node)

  • Moves containers if a ship sinks

  • Ensures enough copies of each item are available

  • Balances weight across ships

That’s what Kubernetes does for your application’s containers.


⚙️ How Kubernetes Works – The 10,000 Ft View

  • Node: A machine (VM or physical) that runs your workloads (pods).

  • Pod: Smallest deployable unit in Kubernetes. Wraps 1 or more containers.

  • Control Plane: Brains of Kubernetes (API server, scheduler, controller, etcd).

  • etcd: A key-value store for all cluster data (like a brain’s memory).

  • kubectl: Command-line tool to interact with the cluster.

Real-World Use Case

Let’s say you’re running an e-commerce site with:

  • A frontend container

  • A backend API container

  • A PostgreSQL DB container

  • A Redis cache container

With Kubernetes, you can:

  • Ensure 3 replicas of the frontend always run.

  • Automatically restart the backend if it fails.

  • Store credentials securely via Kubernetes Secrets.

  • Scale Redis based on load.

  • Deploy changes with zero downtime using rolling updates.


Why Teams Use Kubernetes Today

BenefitDescription
ScalabilityScale apps up/down automatically.
High AvailabilityEnsure apps are always running, self-healing.
PortabilityRun anywhere: on-prem, AWS, Azure, GCP.
DevOps-FriendlyEasy CI/CD integration, GitOps support.
Cost-EfficiencyOptimize resource usage, autoscale nodes.
Declarative ConfigurationUse YAML/JSON to describe desired state.

Summary

ConceptMeaning
ContainerA lightweight, standalone executable software package.
KubernetesA system to manage, scale, and deploy containers.
Why Needed?Containers are powerful, but managing them at scale is complex. Kubernetes automates and simplifies that.

What’s Next?

In the next post, we’ll explore:
👉 Kubernetes Architecture in Detail
👉 What are Pods, Nodes, and the Control Plane?
👉 Diagram-driven learning to understand how components talk to each other

0
Subscribe to my newsletter

Read articles from Manas Upadhyay directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Manas Upadhyay
Manas Upadhyay

I am an experienced AWS Cloud and DevOps Architect with a strong background in designing, deploying, and managing cloud infrastructure using modern automation tools and cloud-native technologies.