DEV Community

Cover image for Kubernetes for Absolute Beginners (2026)
MUKHIL S
MUKHIL S

Posted on

Kubernetes for Absolute Beginners (2026)

☸ Kubernetes for Absolute Beginners (2026) – Theory First, Then Hands-On

If Docker made applications portable, Kubernetes makes them scalable and manageable in production.

Many people first hear:

“Deploy it on Kubernetes.”

But without understanding the mental model, Kubernetes looks extremely complex.

This guide follows the same structure:

  1. Theory first (clear concepts)
  2. Then practical commands
  3. Step-by-step beginner workflow

🧠 PART 1 – Understand Kubernetes BEFORE Using Commands

🚨 The Problem Kubernetes Solves

Docker runs containers.

But real systems require more:

  • Multiple containers
  • Load balancing
  • Auto scaling
  • Health monitoring
  • Automatic restart
  • Zero-downtime updates

Imagine running 100 containers manually.

Problems appear quickly:

  • What if a container crashes?
  • What if traffic increases?
  • What if a machine fails?
  • How do we update without downtime?

Manually managing this becomes impossible.

Kubernetes solves this.


📦 The Core Idea of Kubernetes

Kubernetes is a container orchestration system.

It manages:

  • Containers
  • Servers
  • Networking
  • Scaling
  • Updates
  • Failures

Instead of managing containers manually, you declare:

“I want 5 copies of my app running.”

Kubernetes ensures that state is always maintained.


🧠 Kubernetes Mental Model

A simple way to think about Kubernetes:

System Role Real-World Analogy
Docker Packaging machine
Kubernetes Factory manager
Containers Workers
Nodes Factory machines
Pods Worker groups

Docker creates containers.

Kubernetes manages them at scale.


🧱 Kubernetes Architecture (Simplified)

Image

Image

Image

A Kubernetes system is called a cluster.

A cluster contains two main parts:

1️⃣ Control Plane (Master)

The brain of Kubernetes.

Components:

Component Purpose
API Server Entry point for commands
Scheduler Decides where pods run
Controller Manager Maintains desired state
etcd Database storing cluster state

2️⃣ Worker Nodes

Machines that actually run applications.

Each node contains:

Component Purpose
Kubelet Communicates with control plane
Container Runtime Runs containers (Docker/Containerd)
Kube Proxy Networking

📦 Kubernetes Core Object: Pod

The smallest unit in Kubernetes is a Pod.

A Pod contains:

  • One or more containers
  • Shared network
  • Shared storage

Important concept:

Containers inside the same pod behave like one application unit.

Example:

Pod
 ├── Container (App)
 └── Container (Logging agent)
Enter fullscreen mode Exit fullscreen mode

🔁 Deployment – Managing Pods

Running pods directly is risky.

Instead Kubernetes uses Deployments.

Deployment manages:

  • Number of pods
  • Rolling updates
  • Auto recovery

Example declaration:

I want 3 pods running.
Enter fullscreen mode Exit fullscreen mode

If one crashes → Kubernetes creates another.


🌐 Service – Stable Networking

Pods have dynamic IP addresses.

They constantly change.

To solve this, Kubernetes provides Services.

Service gives:

  • Stable IP
  • Stable DNS name
  • Load balancing

Example:

frontend-service
Enter fullscreen mode Exit fullscreen mode

It routes traffic to available pods.


📈 Scaling in Kubernetes

Scaling can be done manually or automatically.

Example:

kubectl scale deployment my-app --replicas=5
Enter fullscreen mode Exit fullscreen mode

Now Kubernetes runs 5 pods instead of 1.

With Horizontal Pod Autoscaler, scaling happens automatically based on CPU or traffic.


🔑 Other Important Kubernetes Concepts

Namespace

Logical grouping of resources.

Example:

dev
testing
production
Enter fullscreen mode Exit fullscreen mode

ConfigMap

Stores configuration.

Example:

DATABASE_URL
API_ENDPOINT
Enter fullscreen mode Exit fullscreen mode

Separates configuration from code.


Secret

Stores sensitive information:

  • Passwords
  • API keys
  • Tokens

Persistent Volume

Used when applications require storage.

Example:

  • Databases
  • Uploaded files

🧠 One-Sentence Mental Model

Kubernetes continuously ensures that the desired state of your application matches the actual running state of the cluster.


🚀 PART 2 – Hands-On Kubernetes (Beginner Friendly)

Before running Kubernetes commands, you need a cluster.

For learning, use:

  • Minikube
  • Kind
  • Docker Desktop Kubernetes

Beginner-friendly option:

Minikube


✅ Step 1 – Install Minikube

Install Minikube:

https://minikube.sigs.k8s.io/docs/start/

Verify installation:

minikube version
Enter fullscreen mode Exit fullscreen mode

▶ Step 2 – Start Kubernetes Cluster

minikube start
Enter fullscreen mode Exit fullscreen mode

This creates a local Kubernetes cluster.

Check cluster status:

kubectl cluster-info
Enter fullscreen mode Exit fullscreen mode

📦 Step 3 – Run Your First Pod

Create a pod:

kubectl run nginx --image=nginx
Enter fullscreen mode Exit fullscreen mode

Check pods:

kubectl get pods
Enter fullscreen mode Exit fullscreen mode

You will see:

nginx   Running
Enter fullscreen mode Exit fullscreen mode

🌐 Step 4 – Expose the Pod

Pods are not accessible externally by default.

Expose using a service.

kubectl expose pod nginx --type=NodePort --port=80
Enter fullscreen mode Exit fullscreen mode

Check services:

kubectl get svc
Enter fullscreen mode Exit fullscreen mode

Open in browser:

minikube service nginx
Enter fullscreen mode Exit fullscreen mode

You will see the Nginx welcome page.


📋 Most Important Kubernetes Commands

Show cluster nodes

kubectl get nodes
Enter fullscreen mode Exit fullscreen mode

Show pods

kubectl get pods
Enter fullscreen mode Exit fullscreen mode

Show services

kubectl get services
Enter fullscreen mode Exit fullscreen mode

Delete pod

kubectl delete pod nginx
Enter fullscreen mode Exit fullscreen mode

Describe resource

kubectl describe pod nginx
Enter fullscreen mode Exit fullscreen mode

Shows detailed debugging information.


🧑‍💻 Create a Deployment (Real-World Way)

Instead of a single pod:

kubectl create deployment myapp --image=nginx
Enter fullscreen mode Exit fullscreen mode

Check deployments:

kubectl get deployments
Enter fullscreen mode Exit fullscreen mode

Check pods:

kubectl get pods
Enter fullscreen mode Exit fullscreen mode

You will see Kubernetes created pods automatically.


📈 Scale Application

Increase replicas:

kubectl scale deployment myapp --replicas=4
Enter fullscreen mode Exit fullscreen mode

Now Kubernetes runs 4 identical pods.


🔁 Update Application

Example:

kubectl set image deployment/myapp nginx=nginx:1.25
Enter fullscreen mode Exit fullscreen mode

Kubernetes performs rolling updates without downtime.


📄 Kubernetes YAML Example

Real deployments use YAML files.

Example:

deployment.yaml

apiVersion: apps/v1
kind: Deployment

metadata:
  name: myapp

spec:
  replicas: 3

  selector:
    matchLabels:
      app: myapp

  template:
    metadata:
      labels:
        app: myapp

    spec:
      containers:
      - name: myapp
        image: nginx
        ports:
        - containerPort: 80
Enter fullscreen mode Exit fullscreen mode

Apply configuration:

kubectl apply -f deployment.yaml
Enter fullscreen mode Exit fullscreen mode

Kubernetes creates everything automatically.


🧩 Docker vs Kubernetes

Feature Docker Kubernetes
Purpose Run containers Manage containers
Scope Single machine Cluster
Scaling Manual Automatic
Load balancing Limited Built-in
Self healing No Yes

Docker builds containers.

Kubernetes runs them at scale.


🎯 Why Kubernetes Is Widely Used

Major companies rely on Kubernetes because it provides:

  • Automatic scaling
  • Self-healing infrastructure
  • High availability
  • Rolling deployments
  • Cloud portability
  • Infrastructure automation

Platforms built on Kubernetes:

  • Google Kubernetes Engine
  • Amazon EKS
  • Azure AKS

🧠 Final Mental Model

Docker packages applications into containers.

Kubernetes orchestrates those containers across many machines to ensure:

  • reliability
  • scalability
  • automation

Top comments (0)