What Exactly Is Kubernetes Used For? A Practitioner's Guide

Let me tell you a story. In 2019, my team at SIVARO was building a real-time data pipeline for a fintech client. We had microservices. We had containers. We ...

what exactly kubernetes used practitioner's guide
By Nishaant Dixit
What Exactly Is Kubernetes Used For? A Practitioner's Guide

What Exactly Is Kubernetes Used For? A Practitioner's Guide

What Exactly Is Kubernetes Used For? A Practitioner's Guide

Let me tell you a story.

In 2019, my team at SIVARO was building a real-time data pipeline for a fintech client. We had microservices. We had containers. We had chaos. Deployments took 45 minutes. Rollbacks required prayer. One engineer accidentally deleted a production database — and we didn't know for four hours.

That's when we adopted Kubernetes.

Not because it was trendy. Because our deployment model was broken.

So what exactly is kubernetes used for? I'll answer directly: it's a platform for automating deployment, scaling, and management of containerized applications. But that's like saying a car is for moving people from A to B. Technically true. Practically useless.

Here's what I've learned running production systems since 2018, processing 200K events per second, and building data infrastructure across 12+ industries.


The Problem Kubernetes Actually Solves

Most people think Kubernetes is about containers. It's not. Containers are the prerequisite, not the point.

The real problem is operational complexity at scale.

When you have 5 microservices running on 3 servers, you don't need Kubernetes. You need a shell script and a cron job. I've done this. It works fine.

When you have 50 microservices running across 200 servers, with autoscaling, zero-downtime deploys, service discovery, secret management, and infrastructure that spans 4 cloud providers? That's when Kubernetes earns its keep.

Red Hat's definition frames it as "an open-source platform for managing containerized workloads and services." Accurate. But let me translate: Kubernetes is your operations team's API. It turns infrastructure management into configuration files.


Core Use Cases: Where Kubernetes Shines

1. Microservices Orchestration (The Obvious One)

This is where 90% of Kubernetes adoption happens.

You've decomposed your monolith into 30 microservices. Each needs to be deployed independently. Each needs health checks. Each needs to talk to the others. You need load balancing across replicas. You need to scale individual services based on traffic.

Here's what a basic deployment looks like:

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-service:v2.4.1
        ports:
        - containerPort: 8080
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
        resources:
          requests:
            memory: "256Mi"
            cpu: "250m"
          limits:
            memory: "512Mi"
            cpu: "500m"

This isn't magic. It's a contract. You tell Kubernetes "run 3 copies, check health, restart if dead, cap resource usage." It does the rest.

2. Automated Rollouts and Rollbacks

Before Kubernetes, our deployment strategy was: push code, cross fingers, scramble when something breaks.

Kubernetes gives you declarative rollouts. You define the desired state. Kubernetes figures out how to get there.

yaml
apiVersion: apps/v1
kind: Deployment
spec:
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0

This says: never go below 100% service availability during an update. Kubernetes spins up new pods, waits for them to pass health checks, then kills old ones. If something fails halfway through, it pauses automatically.

We've rolled back production in 12 seconds. Not because we're brilliant. Because the YAML defined the escape route.

3. Horizontal Scaling (The Real Superpower)

Manual scaling is a trap. You'll under-provision during traffic spikes and over-pay during lulls.

Kubernetes' Horizontal Pod Autoscaler (HPA) adjusts replicas based on metrics. CPU, memory, custom metrics — pick your poison.

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

We run this on a client's e-commerce platform. Black Friday traffic? No problem. Kubernetes scales from 3 to 18 pods automatically. When traffic drops at 2 AM, it scales back down. We don't touch it.

Google Cloud's overview calls this "self-healing." I call it "sleeping through the night without pager alerts."

4. Service Discovery and Load Balancing

In a dynamic environment, IP addresses change constantly. Containers die. New ones spawn. How do services find each other?

Kubernetes gives you Services — stable network endpoints that route traffic to changing pods.

yaml
apiVersion: v1
kind: Service
metadata:
  name: user-service
spec:
  selector:
    app: user
  ports:
  - protocol: TCP
    port: 80
    targetPort: 3000
  type: ClusterIP

One service name. Load balanced across however many pods exist. Add pods? They join automatically. Remove pods? Traffic stops routing to them. Zero configuration changes.

5. Batch Processing and Cron Jobs

Not everything is a long-running web service. Sometimes you need to process a million records at 3 AM.

Kubernetes handles this natively with Jobs and CronJobs:

yaml
apiVersion: batch/v1
kind: CronJob
metadata:
  name: nightly-report
spec:
  schedule: "0 2 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: report
            image: sivaro/report-generator:1.2
            env:
            - name: DB_CONNECTION
              valueFrom:
                secretKeyRef:
                  name: db-secrets
                  key: connection-string
          restartPolicy: OnFailure

This runs our nightly data aggregation for a logistics client. Processes 2 million tracking events. Completes in 17 minutes. If it fails, it retries. If it fails three times, we get alerted.


What Kubernetes Is NOT Good For

I need to be honest here. Kubernetes isn't the answer to every problem.

Small Deployments

If you're running 3 containers on a single VPS, Kubernetes adds complexity you don't need. You'll spend more time managing the cluster than building your product. Use Docker Compose. Use a simple deployment script. Don't over-engineer.

Stateful Workloads (Without Careful Design)

Databases on Kubernetes? Possible. Recommended? Depends.

We've run PostgreSQL on Kubernetes for 18 months. It works. But you need StatefulSets, PersistentVolumeClaims, and careful backup strategies. If you're a team of 3 building an MVP, use a managed database service.

Avassa's article makes a compelling case: at the edge, where resources are constrained and connectivity is intermittent, Kubernetes creates more problems than it solves. Context matters.

Latency-Sensitive Real-Time Systems

Kubernetes introduces network overhead. The control plane takes time to react. If you need sub-millisecond response times, bare metal or carefully tuned VMs might serve you better.


The Hard Truth: Why Are People Moving Away from Kubernetes?

Let's address the elephant in the room. You've probably heard the whispers. "Kubernetes is too complex." "We're moving to serverless." "Why are people moving away from kubernetes?"

I've seen this firsthand. Here's what's actually happening:

Complexity is real. The learning curve is brutal. We spent 6 weeks getting our first production cluster stable. One misconfigured network policy broke inter-service communication for 4 hours.

Cost can explode. Without proper resource limits and cluster autoscaling, you'll over-provision. I've seen monthly cloud bills jump 3x after moving to Kubernetes — because teams deployed everything with "requests: { cpu: 1, memory: 1Gi }" without thinking.

Operational overhead shifts, doesn't disappear. You trade configuration management for YAML management. You still need to update base images, patch vulnerabilities, manage certificates, handle upgrades.

But here's my take: the people moving away from Kubernetes often moved to it for the wrong reasons. They adopted Kubernetes because it was trendy. They didn't have the operational maturity to handle it. Their systems didn't need it.

We migrated one client back to a monolith after 8 months on Kubernetes. Their traffic was 200 requests per minute. Their team was 4 people. Kubernetes was a tax, not a tool.


When You Should Actually Use Kubernetes

When You Should Actually Use Kubernetes

Based on real projects:

  • Multiple services that need independent deployment — We run 47 microservices for a logistics platform. Coordinating releases without Kubernetes would be impossible.
  • Variable traffic patterns — SaaS products with daily usage spikes benefit massively.
  • Multi-cloud or hybrid cloud strategies — Kubernetes abstracts infrastructure. We deploy identical configurations across AWS, GCP, and on-premise.
  • Teams with dedicated DevOps/Platform engineering — If someone owns the cluster, Kubernetes pays dividends.
  • Compliance and audit requirements — Kubernetes audit logging traces every API call. For SOC2 compliance, this is gold.

The Operational Reality

Let me share what running Kubernetes in production actually looks like, day-to-day.

Morning: I check cluster metrics via Grafana. Pod health. Node resource usage. Application error rates.

Mid-morning: Deploy a new service version. kubectl apply -f deployment.yaml. Watch rolling update progress. Verify health checks pass.

Afternoon: Autoscaler kicks in for a traffic spike. 8 pods become 14. Response times stay under 200ms.

Late night (occasionally): PagerDuty alerts. A node went down. Kubernetes rescheduled pods to healthy nodes. Applications never went offline. I acknowledge the alert, SSH in to investigate the node failure, submit a ticket to the cloud provider.

The system handles 90% of failures without human intervention. That's the point.


Common Mistakes I've Made (Learn From Them)

Not setting resource limits. Result: one service consumed all node resources, starving others. Fix happened at 3 AM.

Using default storage classes. Result: PersistentVolumeClaims provisioned slow network storage. Database queries took 4x longer. Cost the same.

Ignoring namespace isolation. Result: development team accidentally deployed to production namespace. Twice.

Skipping pod disruption budgets. Result: node upgrades killed all replicas simultaneously. 45 seconds of downtime.


FAQ

Is Kubernetes just for large enterprises?

No. But it's for teams that need to manage multiple services at scale. Startups with 3 engineers don't need it. Startups with 30 engineers, running 20 services, with 50K users? Probably do.

Can Kubernetes run on my laptop?

Yes. Minikube, kind, and k3s all run locally. I develop and test configurations on a MacBook Pro before deploying to production clusters.

Does Kubernetes replace Docker?

No. Kubernetes orchestrates containers. Docker builds and runs containers. They work together. You can use other runtimes (containerd, CRI-O) instead of Docker.

How long does it take to learn Kubernetes?

3 months to be productive. 12 months to be proficient. 24 months to be dangerous. I'm still learning after 5 years.

Is Kubernetes expensive to run?

The software is free. The infrastructure costs depend on your cluster size. We run a 30-node cluster for ~$8K/month including nodes, load balancers, and storage. Smaller clusters cost proportionally.

Can Kubernetes handle databases?

Yes, but carefully. We run Redis and PostgreSQL on Kubernetes. We use managed services for MySQL and MongoDB. Trade-offs depend on your operational capacity.

What happens if the control plane fails?

Your applications keep running. Pods remain scheduled. Existing services continue. But you can't deploy changes or scale until the control plane recovers. This is why managed Kubernetes services (EKS, GKE, AKS) are popular — they handle control plane reliability.

Why are people moving away from kubernetes?

For three reasons: (1) their system was too small to justify the complexity, (2) they lacked operational maturity, (3) managed serverless solutions actually fit their workload better. The technology isn't flawed. The use case was wrong.


The Bottom Line

The Bottom Line

What exactly is kubernetes used for? It's a tool for turning chaos into configuration. It takes the variability of infrastructure and makes it predictable. It shifts your team's energy from "keeping things running" to "building features that matter."

But it's not free. The Kubernetes.io overview calls it "a portable, extensible, open-source platform." That portability comes with abstraction overhead. That extensibility comes with learning cost.

Here's my rule: If your deployment process makes you anxious, Kubernetes can help. If your deployment process is a single git push to a PaaS, and it works, leave it alone.

We run Kubernetes for 12 clients. We also run Docker Compose for 3 internal tools. Both are correct. The distinction is intentional.

The question isn't "is Kubernetes good?" It's "is Kubernetes the right abstraction for my specific problem?"

Answer that honestly, and you'll make the right call.


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