What Exactly Is Kubernetes Used For? The Honest Breakdown

I've been building data infrastructure since 2018. Before SIVARO, I spent years watching teams throw Kubernetes at problems that didn't need it — and avoid...

what exactly kubernetes used honest breakdown
By Nishaant Dixit
What Exactly Is Kubernetes Used For? The Honest Breakdown

What Exactly Is Kubernetes Used For? The Honest Breakdown

What Exactly Is Kubernetes Used For? The Honest Breakdown

I've been building data infrastructure since 2018. Before SIVARO, I spent years watching teams throw Kubernetes at problems that didn't need it — and avoid it for problems that absolutely did.

Here's the short version: Kubernetes is a container orchestrator. It automates deployment, scaling, and management of containerized applications. Google Cloud's definition calls it "an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts."

But that definition hides the real questions.

What exactly is Kubernetes used for? Not running containers. Not DevOps buzzwords. It's used for one thing, really: reliably running distributed systems at scale without going insane.

Let me show you what that actually means.


The Problem Kubernetes Solves (That Nobody Explains Well)

Most tutorials show you how to deploy a Node.js app to a single cluster. Cool. You could do that with Docker Compose.

Kubernetes becomes useful when:

  • You have 50 microservices that need to talk to each other
  • You need to scale services independently based on real-time traffic
  • Your deployment pipeline needs zero-downtime rollouts across 200 machines
  • You can't afford to wake up at 3 AM because a server died

At Red Hat, they frame it as "production-grade container orchestration." That's accurate. But let me tell you what that feels like:

Three years ago, we ran a system processing 200K events per second for a financial client. Before Kubernetes, a single node failure meant pager duty. After Kubernetes, the system healed itself. Pods rescheduled. Traffic rerouted. Nobody noticed.

That's what it's used for: making infrastructure boring.


What Kubernetes Actually Does (The Practical Layer)

Let's strip away the abstraction. Here's what Kubernetes gives you:

1. Self-Healing Infrastructure

When a container dies, Kubernetes restarts it. When a node fails, it reschedules the pods. When health checks fail, it kills and replaces.

This isn't magic. It's a control loop — the Kubernetes controller pattern — that constantly compares the current state to your desired state.

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: payment-service
spec:
  replicas: 3
  selector:
    matchLabels:
      app: payment
  template:
    metadata:
      labels:
        app: payment
    spec:
      containers:
      - name: payment
        image: sivaro/payment:v2.1
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 3
          periodSeconds: 5

If that health check fails five times, the pod dies. A new one spins up. Your users see nothing.

2. Horizontal Scaling That Actually Works

You set a CPU threshold. Kubernetes adds pods. Traffic drops. Kubernetes removes pods.

Not "we'll scale on Tuesday during the maintenance window." Real-time, constantly.

yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: payment-service-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: payment-service
  minReplicas: 3
  maxReplicas: 20
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

We saw this in production during Black Friday 2023. Traffic spiked 4x in 12 minutes. The HPA kicked in at 70% CPU, scaled from 6 to 18 pods, and everything stayed green. No human touched it.

3. Service Discovery and Load Balancing

Every pod gets its own IP. But pods die and get replaced constantly. Kubernetes gives you Services — stable endpoints that route traffic to the right pods regardless of their IP.

yaml
apiVersion: v1
kind: Service
metadata:
  name: payment-service
spec:
  selector:
    app: payment
  ports:
  - port: 80
    targetPort: 8080
  type: ClusterIP

Your microservices talk to payment-service:80. They never need to know individual pod IPs. Works the same in dev, staging, and prod.

4. Rolling Updates and Rollbacks

This is the killer feature for production teams.

bash
kubectl set image deployment/payment-service payment=sivaro/payment:v2.2
kubectl rollout status deployment/payment-service

Kubernetes updates pods one by one (or in batches, depending on your config). Each new pod must pass readiness probes before traffic hits it. If v2.2 crashes, you run:

bash
kubectl rollout undo deployment/payment-service

And you're back to v2.1 in seconds. Zero downtime.


What Kubernetes Is NOT Good For (The Honest Truth)

I've seen teams jump into Kubernetes and regret it. Here's when you should not use it.

Small Deployments

Running two containers on a single VM? Docker Compose. Done. Kubernetes adds complexity that solves problems you don't have.

Stateful Workloads (Sometimes)

Databases on Kubernetes are possible. StatefulSets exist. But managing persistent volumes, backups, and state recovery adds complexity that most teams underestimate.

Edge Computing

This one's personal. Avassa's team wrote about exactly why they walked away from Kubernetes at the edge: "distribution, lack of Internet connectivity, small footprint, and the need for simplicity." I've seen the same pattern. If your nodes are scattered across remote locations with limited connectivity, Kubernetes overhead will kill you.

Why are people moving away from Kubernetes? Because they shoved it into environments it wasn't designed for. Edge. IoT. Tiny deployments. Kubernetes is a production orchestrator for cloud-native workloads. It's not a universal hammer.


Is Netflix Using Kubernetes?

This question comes up constantly. The short answer: some parts, but not the core streaming infrastructure.

Netflix runs a massive microservice architecture. They built their own tooling — Spinnaker for deployment, Zuul for routing, custom service meshes. They do use container orchestration, but they've invested heavily in their own abstractions on top.

Most companies aren't Netflix. For 95% of organizations, Kubernetes is the right answer. Netflix built their own platform because they'd been operating at that scale since before Kubernetes existed. You? You probably haven't.


When Kubernetes Saves You (Real Examples)

Example 1: The Monolith That Had to Die

Client had a Rails monolith. Deployments took 45 minutes. One team touching the payment system blocked the entire company.

We split it into 12 microservices. Each deployed independently via Kubernetes Deployments. Deployments went from 45 minutes to 90 seconds. Teams stopped blocking each other.

yaml
# Before: manual deploy, 45 minutes, fingers crossed
# After:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: auth-service
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    spec:
      containers:
      - name: auth
        image: client/auth:release-2024-03-01

Deploy this. Watch it roll. If it breaks, kubectl rollout undo. Done.

Example 2: The Black Friday Traffic Surge

E-commerce client. Traffic patterns unpredictable. They'd over-provision 3x capacity and still have issues.

We moved to Kubernetes with Cluster Autoscaler and HPA. Node count went from 40 to 120 during peak. Pod count scaled per-service, not per-monolith. Their cloud bill dropped 40% while handling 60% more traffic.

Example 3: The Multi-Cloud Escape

Another client was locked into AWS. Kubernetes gave them a consistent layer across GCP and Azure. Same YAML, same deployments, same behavior. Took 3 months to migrate half their workloads off AWS. Without Kubernetes, that's a year-long nightmare.


The Components You Actually Need to Know

The Components You Actually Need to Know

You don't need to memorize the entire API. Here's what matters:

Pods

The smallest deployable unit. One or more containers that share network and storage. They're ephemeral — treat them like cattle, not pets.

Deployments

Declarative updates for Pods and ReplicaSets. This is your main tool for stateless apps. You specify the desired state; Kubernetes makes it happen.

Services

Stable network endpoints. Pods come and go; Services stay constant.

ConfigMaps and Secrets

Configuration data injected into pods. Secrets are base64-encoded (you need encryption at rest for anything sensitive).

Ingress

HTTP/S routing. Think of it as a reverse proxy that Kubernetes manages.

Persistent Volumes

Storage that survives pod restarts. Use these for databases, file storage, anything stateful.


The Architecture (In Plain English)

A Kubernetes cluster has two node types:

  1. Control Plane — The brain. Runs the API server, scheduler, controller manager, etcd (distributed key-value store). You don't run apps here.

  2. Worker Nodes — The brawn. Run your actual containers. Each node has a container runtime (Docker, containerd), kubelet (agent that communicates with control plane), and kube-proxy (networking).

You interact through the API server. Either via kubectl or programmatically.

┌─────────────────────────────────────────┐
│ Control Plane                           │
│  ┌──────┐ ┌──────┐ ┌───────────────┐  │
│  │ API  │ │Sched │ │ControllerMgr  │  │
│  │Server│ │      │ │               │  │
│  └──────┘ └──────┘ └───────────────┘  │
│  ┌──────────────────────────────┐      │
│  │           etcd               │      │
│  └──────────────────────────────┘      │
└─────────────────────────────────────────┘
                    │
    ┌───────────────┼───────────────┐
    │               │               │
┌───────┐      ┌───────┐      ┌───────┐
│ Node 1│      │ Node 2│      │ Node 3│
│ Pods  │      │ Pods  │      │ Pods  │
│ Kubelet│     │ Kubelet│     │ Kubelet│
│ Proxy │      │ Proxy │      │ Proxy │
└───────┘      └───────┘      └───────┘

This architecture is what makes Kubernetes resilient. The control plane manages the cluster; failures on worker nodes don't crash the system. Pods get rescheduled. Traffic gets rerouted.


The Ecosystem (What You Actually End Up Using)

Kubernetes alone isn't enough. Here's the stack I see working in production:

  • Helm — Package manager for Kubernetes. Single command installs, upgrades, rolls back applications.
  • Prometheus + Grafana — Monitoring. Metrics collection and visualization.
  • Istio / Linkerd — Service mesh. Handles traffic management, security, observability between services.
  • ArgoCD / Flux — GitOps. Deployments driven by Git commits.
  • Cert-Manager — Automated TLS certificates.
  • Ingress Controllers (NGINX, Traefik, HAProxy) — HTTP routing.

You don't need all of these on day one. Start with Deployments, Services, and Ingress. Add monitoring before adding a service mesh.


The Hard Parts Nobody Talks About

Networking Complexity

CNI plugins (Calico, Flannel, Cilium) are not trivial. Misconfigured networking causes outages that are hard to debug.

State Management

Running databases on Kubernetes is possible but painful. Commvault's analysis notes that data protection and backup are often afterthoughts. They're not wrong.

Cost Management

Kubernetes abstracts infrastructure. That means your engineers might not see the cloud bill for that over-provisioned cluster. Set budget alerts early.

Debugging Distribution

When a pod fails, it's gone. You can't SSH in to check. You need centralized logging (Loki, ELK) and metrics (Prometheus) before you can debug anything.


Do You Need Kubernetes?

Here's my framework:

Use Kubernetes if:

  • You have 5+ microservices
  • You need zero-downtime deployments
  • You're scaling across multiple availability zones
  • Your team has 3+ engineers who can maintain it

Don't use Kubernetes if:

  • You have 1-3 services
  • You're running edge devices with limited connectivity
  • Your team has no DevOps experience
  • You just need simple Docker Compose

The answer to "what exactly is Kubernetes used for?" is simple: it's used to run distributed systems reliably at scale, with automated healing, scaling, and deployment.

But it's not free. The complexity tax is real. Every team should evaluate honestly whether they're big enough to pay it.


FAQ

FAQ

Is Kubernetes just for containers?

Yes and no. It orchestrates containers, but it also manages networking, storage, security, and configuration for those containers. Think of it as a platform for running distributed systems, not just a container manager.

Can I run Kubernetes on my laptop?

Yes. Minikube, kind (Kubernetes in Docker), or k3s run locally. I use kind for testing — spins up a cluster in 30 seconds.

Why are people moving away from Kubernetes?

Two reasons: complexity overhead and fit mismatch. Small teams get buried in YAML. Edge teams find it too heavy. If you need to run edge workloads with limited connectivity, Kubernetes might not be your answer.

Is Netflix using Kubernetes?

Partially. Netflix uses container orchestration but invested heavily in custom tooling before Kubernetes existed. They use Kubernetes for some workloads but not their core streaming pipeline. Most companies aren't Netflix — for everyone else, Kubernetes is the pragmatic choice.

Is Kubernetes secure out of the box?

No. Default installs have minimal security. You need to configure RBAC, network policies, pod security standards, and secrets encryption. Do not run default Kubernetes in production.

What's the learning curve?

Steep. Expect 2-4 weeks before your team is productive. Six months before they're confident in production. The official documentation is excellent but dense — keep it open while you're learning.

Can Kubernetes save money?

It can — through better resource utilization and autoscaling. But the operational overhead might offset savings for small teams. We've seen clients cut cloud costs 30-40% after optimizing with Kubernetes. We've also seen teams spend more on engineering time than they saved on infrastructure.


Nishaant Dixit — Founder of SIVARO. Building data infrastructure and production AI systems since 2018. Built systems processing 200K events/sec.

Free · No Commitment · 48-Hour Delivery

Get a free infrastructure audit

2-hour remote session. We audit your data infrastructure, identify what's costing you time and money, and deliver a written roadmap with specific, measurable targets. No pitch.

Book Your Free Audit
N
Nishaant Dixit
Founder & Lead Engineer at SIVARO

Building data-intensive systems since 2018. 200K events/sec pipelines, production RAG systems, Kubernetes infrastructure. LinkedIn →

Start a Project
Need help with infrastructure?

Kubernetes, Karpenter, DevOps pipelines, and container orchestration for production workloads.

Explore MVP to Production