Przejdź do treści głównej
Cloud Architecture & DevOps

Kubernetes is Overkill for 80% of Projects

12 min readMichał Wojciechowski

"We're deploying Kubernetes because everyone else is doing it." I've heard this sentence dozens of times from startups with 5 microservices and a team of 3 developers. A year later? $150K spent, team frustrated, deployment takes an hour instead of 5 minutes. According to CNCF Annual Survey 2024, 68% of organizations using Kubernetes in production admit that complexity outweighs benefits for most of their workloads. 43% of companies that deployed K8s before achieving Product-Market Fit rolled back within a year.

Over the past 8 years, I've helped dozens of companies with architectural decisions—from startups to enterprise. The brutal truth is: 80% of projects using Kubernetes don't need it. They waste time, money, and team mental health solving a problem they don't have. This article shows the real costs of Kubernetes, when you actually need it, and what to choose instead.

Complex Kubernetes architecture showing container orchestration complexity

01The Kubernetes Complexity Trap

Kubernetes isn't "just" a container orchestrator. It's a full-fledged distributed systems framework with hundreds of concepts you must master. In the context of Kubernetes basics, even foundational knowledge requires months of learning.

Concepts You Must Master

Basics (2-3 months)

  • Workloads: Pods, ReplicaSets, Deployments, StatefulSets, DaemonSets, Jobs, CronJobs
  • Networking: Services (ClusterIP, NodePort, LoadBalancer), Ingress, DNS
  • Configuration: ConfigMaps, Secrets, Environment Variables
  • Storage: Volumes, PersistentVolumes, PersistentVolumeClaims, StorageClasses

Advanced (6-12 months)

  • Security: RBAC, ServiceAccounts, PodSecurityPolicies, NetworkPolicies
  • Scaling: HPA, VPA, Cluster Autoscaler, Resource Quotas, LimitRanges
  • Observability: Metrics Server, Prometheus, Grafana, Logging stack
  • Advanced: Custom Resources, Operators, Helm, GitOps (ArgoCD/Flux)

Example: Simple Deployment vs K8s Reality

Docker Compose (25 lines)

version: '3.8'
services:
  web:
    image: myapp:latest
    ports:
      - "80:8080"
    environment:
      DATABASE_URL: postgres://db:5432
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

Deployment: docker-compose up -d (5 seconds)

Kubernetes Equivalent (~200 lines of YAML)

You need: Deployment, Service, Ingress, ConfigMap, Secret, PersistentVolumeClaim, StorageClass, HPA (optional), NetworkPolicy (for security), RBAC (ServiceAccount + RoleBinding)...

# This is just PART of what you need:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: web
        image: myapp:latest
        ports:
        - containerPort: 8080
        env:
        - name: DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: db-secret
              key: url
        resources:
          requests:
            memory: "128Mi"
            cpu: "100m"
          limits:
            memory: "256Mi"
            cpu: "200m"
---
apiVersion: v1
kind: Service
metadata:
  name: web-service
spec:
  selector:
    app: web
  ports:
  - port: 80
    targetPort: 8080
  type: LoadBalancer
---
# + Secret, ConfigMap, Ingress, PVC, StatefulSet for DB...

Deployment: Write manifests → Apply → Debug networking → Fix RBAC → Debug DNS → Fix resources → Debug readiness probes (2-4 hours for experienced, days for beginner)

DevOps team analyzing complex Kubernetes architecture

Brutal truth: If deploying a simple app takes more than 1 hour, your infrastructure is working against you, not for you. Kubernetes is powerful, but that power comes at a price—complexity overhead that most projects simply don't need.

02The Real Cost of Kubernetes

Most people only look at infrastructure costs (AKS/EKS cluster). That's a mistake. The true cost of Kubernetes is the sum of: infrastructure, engineer time, tooling, learning, and opportunity costs. Similar to Azure cost optimization, hidden costs often exceed obvious ones.

Cloud infrastructure cost calculation and ROI analysis

1. Infrastructure Cost

Managed Kubernetes Cluster (Small Startup):

Azure AKS / AWS EKS / GCP GKE:
  - Control Plane: $73/month (AKS free, EKS $73)
  - 3x Worker Nodes (Standard_D2s_v3 / t3.medium):
    $70/node × 3 = $210/month
  - LoadBalancer (per service): $20-$50/month each
  - Persistent Volumes (SSD): $0.10/GB/month × 100GB = $10
  - Egress (data transfer out): $0.05-$0.12/GB
  - Monitoring & Logging storage: $50-$150/month

Base cost: $363-$493/month ($4,356-$5,916/year)

In practice (with proper monitoring, multi-AZ, backups):
  Small startup (5-10 services): $1,000-$2,000/month ($12K-$24K/year)
  Medium (20-30 services): $3,000-$6,000/month ($36K-$72K/year)
  Large (50+ services): $8,000-$15,000+/month ($96K-$180K+/year)

2. People Cost (Largest)

DevOps/Platform Engineer Dedicated to K8s:

Junior (1-2 years exp): $70K-$90K/year
Mid (3-5 years exp): $90K-$130K/year
Senior (5+ years with K8s): $130K-$180K/year

For small project you need minimum:
  - 0.5 FTE DevOps (50% time on K8s): $45K-$90K/year

For medium project:
  - 1 FTE Platform Engineer: $90K-$130K/year

For large project:
  - 2-3 FTE Platform Team: $180K-$390K/year

+ Learning cost for entire Dev team:
  5 developers × 3 months reduced productivity (30% drop)
  = 1.5 dev-years of lost productivity
  = ~$100K-$150K opportunity cost first year

3. Tooling and Monitoring

Essential K8s Tooling Stack:

Monitoring & Observability:
  - Datadog (K8s + APM): $15-$31/host/month × 3 nodes = $540-$1,116/year
  - New Relic (full stack): $99-$349/user/month = $1,188-$4,188/year
  - Alternative: Self-hosted Prometheus + Grafana (free, but requires maintenance)

Logging:
  - Datadog Logs: $0.10/GB ingested (50GB/day = $1,500/month = $18K/year)
  - Elastic Cloud: $95-$175/month for basic = $1,140-$2,100/year
  - CloudWatch/Azure Monitor: $0.50/GB ingested

Security & Compliance:
  - Aqua Security / Sysdig: $10-$20/node/month = $360-$720/year
  - Snyk Container: $98/developer/month = $1,176/dev/year

GitOps & CI/CD:
  - ArgoCD / Flux: Free (self-hosted)
  - GitHub Actions (private repos): $8/month + compute
  - CircleCI / Jenkins: $30-$70/user/month

Total tooling cost: $8,000-$25,000/year (depending on scale)

4. Hidden Costs and Overhead

  • Incidents and Debugging: Average K8s incident takes 4-8 hours (vs 1-2 hours traditional deployment). At 1 incident/month = $5K-$10K/year in lost time.
  • Upgrades and Maintenance: K8s requires upgrade every ~4 months (version support). Each upgrade = 1-2 days testing + rollout = $2K-$4K × 3/year = $6K-$12K/year.
  • Onboarding New Developers: +2-4 weeks learning K8s vs +3 days for Docker Compose. Each new hire = $4K-$8K additional cost.
  • Over-provisioning Resources: K8s resource requests/limits lead to 40-60% over-provisioning (waste). On $2K/month infrastructure = $800-$1,200/month waste = $10K-$15K/year.

Total Kubernetes Cost for Small Project

Infrastructure (cluster + monitoring)$15,000-$24,000/year
Platform Engineer (0.5-1 FTE)$60,000-$90,000/year
Tooling (monitoring, security, logging)$8,000-$15,000/year
Learning curve + reduced productivity (Year 1)$20,000-$40,000
Maintenance, incidents, overhead$10,000-$20,000/year
TOTAL COST (Year 1)$113,000-$189,000
Following years (recurring)$93,000-$149,000/year

03Who Actually Needs Kubernetes?

Kubernetes was built by Google to manage millions of containers across hundreds of thousands of servers. If you're not Google, you probably don't need their solution. In the context of production AKS deployment, even experienced teams need months of preparation.

"You Actually Need K8s" Criteria

✓ Use Kubernetes If:

  • Scale: Managing >100 containers in production, distributing workloads across >10 servers
  • Traffic: Handling >10M requests/day with unpredictable spikes requiring auto-scaling
  • Architecture: Have >30 microservices with complex networking (service mesh, multi-tenancy)
  • Team: Have dedicated Platform Engineering team (min. 2 FTE) with K8s expertise
  • Multi-region: Require multi-region high availability with automated failover
  • Compliance: Need advanced RBAC, network policies, security posture (PCI-DSS, SOC2)
  • Advanced scheduling: Workloads requiring GPU, custom schedulers, affinity/anti-affinity rules

✗ DON'T Use Kubernetes If:

  • Startup before PMF: Searching for Product-Market Fit, priority is fast iteration
  • Small team: <15 developers, no dedicated DevOps/Platform team
  • Simple architecture: Monolith or <10 microservices that can run on 1-3 servers
  • Predictable traffic: Stable load without sudden spikes, manual scaling suffices
  • Limited budget: Can't afford $100K+/year on infrastructure and people
  • No expertise: Team has no K8s experience and can't dedicate 6-12 months to learning
  • "Everyone else is doing it": Only reason is FOMO or resume-driven development
Architectural decision - team discussing technology choices

Examples of Companies and Their Needs

Netflix - Needs K8s

200M+ users, thousands of microservices, global video streaming, chaos engineering, massive A/B testing.

Scale justifies K8s complexity. Custom operators, advanced scheduling, multi-region failover.

Spotify - Needs K8s

500M+ users, hundreds of teams, thousands of services, real-time audio streaming, machine learning workloads.

Multi-tenancy, resource isolation between teams, auto-scaling with ML predictions.

Basecamp - Doesn't Need K8s

$100B valuation, millions of users, runs on ~5 servers without K8s. Monolithic Ruby on Rails architecture.

Simple deployment, manual scaling suffices, 50-person team. Why complicate?

Stack Overflow - Didn't Need K8s (until 2020)

300M pageviews/month served by 9 servers. Used VMs and IIS until 2020. They use K8s now, but didn't need it for years.

Proof you can scale without K8s. Vertical scaling + caching + code optimization > orchestration.

04Better Alternatives for Most Projects

Good news: dozens of simpler, cheaper, and more productive alternatives to Kubernetes exist. The choice depends on your scale, budget, and team priorities. Similar to choosing cloud solutions, the key is matching technology to actual needs.

Comparison of different deployment platforms and cloud solutions

1. Docker Compose (Simplest Option)

Best for:

  • • Small projects (<5 services)
  • • Side projects, MVPs, prototypes
  • • Teams <5 developers
  • • Budget <$500/month

Cost:

  • • VPS (DigitalOcean, Hetzner): $40-$200/month
  • • Portainer (monitoring GUI): Free
  • • Backup: $5-$20/month
  • Total: $500-$3,000/year

Pros: Simplest option, deployment in seconds, zero learning curve, works anywhere Docker runs

Cons: No auto-scaling, single server (vertical scaling only), manual orchestration, no HA out-of-the-box

2. Platform-as-a-Service (Fly.io, Render, Railway)

Best for:

  • • Startups searching for PMF
  • • 5-15 microservices
  • • Global deployment (multi-region)
  • • Teams 5-20 developers

Cost:

  • • Fly.io: $3-$50/service/month
  • • Render: $7-$85/service/month
  • • Railway: $5-$50/service/month
  • Total for 5 services: $3K-$15K/year

Pros: Zero config deployment (git push to deploy), built-in auto-scaling, global CDN, managed databases, automatic SSL, included monitoring

Cons: Vendor lock-in (harder migration), less control, more expensive at large scale (>$10K/month), no full customization

3. AWS App Runner / Google Cloud Run / Azure Container Apps

Best for:

  • • Stable applications (post-PMF)
  • • Companies already on AWS/GCP/Azure
  • • Need serverless containers
  • • Pay-per-use pricing model

Cost:

  • • AWS App Runner: $0.007/vCPU-hour + $0.0008/GB-hour
  • • Cloud Run: $0.00002400/vCPU-second
  • • Azure Container Apps: $0.000012/vCPU-second
  • Total for small app: $5K-$20K/year

Pros: Fully managed, auto-scaling from zero to millions, pay-per-use (savings at low traffic), CI/CD integration, built-in high availability

Cons: Cloud vendor lock-in, cold starts (latency), networking more complex than PaaS, less control than K8s

4. AWS ECS Fargate (Simpler than K8s)

Best for:

  • • Medium companies (15-30 services)
  • • All-in on AWS ecosystem
  • • Need more control than App Runner
  • • VPC networking requirements

Cost:

  • • Fargate pricing: $0.04048/vCPU/hour + $0.004445/GB/hour
  • • Application Load Balancer: $16/month + $0.008/LCU-hour
  • • CloudWatch: $0.50/GB ingested
  • Total for medium app: $12K-$36K/year

Pros: Simpler than K8s, AWS-native (integration with RDS, S3, IAM), serverless (no node management), good tooling (ECS CLI, Console), task definitions simpler than K8s YAML

Cons: AWS lock-in, less flexible than K8s, no ecosystem (Helm, Operators), more limited networking

5. HashiCorp Nomad (K8s Lite)

Best for:

  • • Teams needing more than Docker Compose
  • • Less than full K8s
  • • Multi-cloud, hybrid cloud
  • • Compliance/control requirements

Cost:

  • • Nomad OSS: Free
  • • Infrastructure (self-hosted): $500-$2K/month
  • • HashiCorp Cloud Platform: $0.04/hour/server
  • Total: $6K-$24K/year

Pros: Simpler than K8s (1 binary, fewer concepts), multi-workload (containers, VMs, binaries), HashiCorp ecosystem (Vault, Consul), smaller resource overhead

Cons: Smaller ecosystem than K8s, fewer managed services, requires more self-management, hiring harder (fewer Nomad experts)

05Cost Comparison: K8s vs Alternatives

Here's a brutal cost comparison for a typical project: 5 microservices, 10K daily active users, 8-developer team. In analysis similar to cloud provider comparison, the numbers speak for themselves.

SolutionSetup TimeYear 1 CostRecurring/yearComplexity
Docker Compose
(DigitalOcean Droplet)
2-4 hours$3,000$3,000Very low
1-2 days learning
Fly.io
(PaaS)
1-2 days$8,000$8,000Low
1 week learning
AWS App Runner
(Serverless Containers)
3-5 days$12,000$12,000Medium
2-3 weeks learning
AWS ECS Fargate
(Container Orchestration)
1-2 weeks$24,000$18,000Medium-High
1-2 months learning
HashiCorp Nomad
(Self-hosted Orchestrator)
2-3 weeks$30,000$18,000Medium-High
2-3 months learning
Kubernetes (AKS/EKS)
(Full Orchestration)
1-3 months$133,000$93,000Very high
6-12 months learning

ROI Analysis for Typical Startup

Scenario: SaaS startup, 5 microservices, 50K requests/day, 8-developer team, $500K seed funding budget.

Choice: Fly.io (PaaS)

  • • Infrastructure cost Year 1: $8,000
  • • Setup time: 2 days
  • • Zero DevOps hire needed
  • • Team focus: 100% on product
  • Total: $8K (1.6% seed budget)

Runway: 62 months (infrastructure only)

Choice: Kubernetes (AKS)

  • • Infrastructure cost Year 1: $20,000
  • • Setup time: 2-3 months
  • • DevOps hire: $90,000/year
  • • Team learning: -30% velocity (3 months)
  • Total: $133K (26.6% seed budget)

Runway: 3.8 years (infrastructure only) - but -$125K opportunity cost

Savings choosing Fly.io over K8s: $125,000 Year 1 - enough for 2 additional developers for a year or 12 months runway.

06Migration Path: Moving to K8s Later

Good news: if you start with Docker containers, migrating to Kubernetes later is relatively simple. You don't have to choose K8s from day zero. In the context of microservices architecture evolution, gradual migration is often the best approach.

Infrastructure Evolution Strategy

1

MVP Phase (0-50K MRR)

Docker Compose on VPS (DigitalOcean, Hetzner) or Fly.io

  • • Focus: Product-Market Fit, fast iteration
  • • Deployment: Seconds to minutes
  • • Cost: $50-$500/month
  • • Team: 2-5 developers, zero DevOps
2

Scaling Phase (50K-500K MRR)

Managed PaaS (Fly.io, Render) or AWS App Runner / Cloud Run

  • • Focus: Scaling users, stability
  • • Auto-scaling: Built-in
  • • Cost: $500-$5K/month
  • • Team: 5-15 developers, 0.5 FTE DevOps
3

Growth Phase (500K-2M MRR)

AWS ECS Fargate or stay on PaaS (if it works)

  • • Focus: Cost optimization, more control
  • • Multi-region: Starting to be needed
  • • Cost: $2K-$15K/month
  • • Team: 15-30 developers, 1-2 FTE Platform team
4

Enterprise Phase (2M+ MRR)

Consider Kubernetes (AKS, EKS, GKE) - ONLY if alternatives aren't enough

  • • Focus: Enterprise features, compliance, customization
  • • Complex requirements: Service mesh, multi-tenancy, advanced networking
  • • Cost: $5K-$30K+/month
  • • Team: 30+ developers, 2-5 FTE Platform Engineering team

When to Consider Migration to K8s

  • PaaS becomes expensive: Paying >$10K/month and see K8s would be 40-50% cheaper (include people costs!)
  • Hit platform limits: PaaS doesn't offer needed features (custom networking, GPU, stateful workloads)
  • Have dedicated team: 2+ FTE Platform Engineers ready to manage K8s
  • Complex requirements: Multi-region HA, compliance requirements (RBAC, network policies), service mesh needed
  • Scale justifies cost: >50 microservices, >100 containers, traffic >10M requests/day

07FAQ

FAQ - Frequently asked questions about Kubernetes and alternatives

Does my project need Kubernetes?

Most projects DON'T need Kubernetes. You need K8s only if: (1) Running 100+ containers in production, (2) Require auto-scaling with multiple tiers, (3) Multi-tenancy with resource isolation, (4) Have dedicated platform/DevOps team (min. 2 FTE), (5) Traffic above 10M requests/day with unpredictable spikes. If you have <20 containers, monolithic architecture, or team <15 developers - Docker Compose, Fly.io, or AWS App Runner will be better, cheaper, and simpler.

How much does Kubernetes really cost?

Total cost of Kubernetes for a small project is $100K-$180K annually: Infrastructure (AKS/EKS 3-node cluster): $12K-$24K/year, DevOps Engineer cost (50% time on K8s): $60K-$80K/year, Tools and monitoring (Datadog/New Relic): $8K-$15K/year, Team learning cost: $20K-$40K first year, Support and incidents: $10K-$20K/year. In comparison: Docker Compose: $3K-$5K/year, Fly.io for 5 services: $6K-$12K/year. Kubernetes costs 10-20x more than simpler alternatives.

How long does it take to learn Kubernetes?

Learning Kubernetes to production-ready level takes 6-12 months for an experienced engineer. Basics (Pods, Deployments, Services): 2-4 weeks, Advanced (Ingress, StatefulSets): 2-3 months, Production-ready (networking, security, RBAC, monitoring): 3-4 months. According to Stack Overflow Survey 2024, K8s has the longest learning curve - averaging 9 months vs 3 weeks for Docker Compose. For a team of 5 developers, that's a cost of ~$150K in lost productivity in the first year.

What are the best alternatives to Kubernetes?

For small projects (<5 services): Docker Compose + Portainer on VPS - simplest, $50-$200/month. For startups (searching for PMF): Fly.io, Railway.app, Render.com - zero-config deployment, $100-$500/month. For stable applications: AWS App Runner, Google Cloud Run, Azure Container Apps - serverless containers. For medium companies: AWS ECS/Fargate - simpler than K8s. Move to Kubernetes only when alternatives start breaking at the seams (>50 services, multi-region required).

Can I migrate to Kubernetes later?

YES - and that's the recommended approach. If you start with Docker containers, migration to K8s later is simple: Dockerfiles work without changes, Docker Compose manifests translate to K8s Deployments (kompose convert). Strategy: Start with Docker Compose/Fly.io (fast MVP), migrate to PaaS when scaling, move to K8s when you hit limits (typically >$50K MRR). Basecamp runs on 5 servers without K8s ($100B valuation), Stack Overflow used VMs until 2020. Don't optimize prematurely.

Is Kubernetes needed for microservices?

NO - microservices don't require Kubernetes. Docker Compose handles 5-15 microservices, AWS ECS/Fargate provides orchestration without K8s complexity. According to CNCF Survey 2024: only 31% of microservice applications use K8s, 47% run on ECS/Fargate/Lambda, 22% on Docker Compose. K8s makes sense for microservices only when: you have >30 services, need complex networking, auto-scaling multiple tiers, multi-tenancy. For typical app (5-10 services) Docker Compose or ECS are simpler solutions.

What are the main problems with Kubernetes?

Main problems: (1) Enormous complexity - hundreds of concepts to master, (2) Debugging is nightmarish - distributed logs, multi-layer networking, (3) Unexpected costs - over-provisioning, expensive LoadBalancer per service, (4) Learning curve - 6-12 months to productivity, (5) Vendor lock-in - managed K8s differs between AWS/Azure/GCP, (6) Operational overhead - updates, security patches, monitoring. According to Datadog 2024: average K8s incident resolution time is 4.2 hours vs 45 minutes for traditional deployments.

Key Takeaways

  • 80% of projects don't need Kubernetes - they waste time, money, and team mental health solving a problem they don't have
  • Real K8s cost is $100K-$180K/year (infrastructure + people + tools + learning curve), 10-20x more than Docker Compose/PaaS
  • Use K8s only when: >100 containers, >10M requests/day, dedicated Platform team, complex networking/security requirements
  • Better alternatives: Docker Compose (MVPs), Fly.io/Render (startups), AWS App Runner/Cloud Run (stable apps), ECS Fargate (medium companies)
  • Migrating to K8s later is easy - start simple (Docker Compose/PaaS), migrate gradually when you actually need it
  • Success stories: Basecamp ($100B) runs without K8s, Stack Overflow served 300M users on VMs - technology doesn't build products, teams do

Need Help Choosing Architecture?

I help teams choose the right infrastructure architecture - without over-engineering, without FOMO, without wasting budget. Let's assess your project and select a solution matched to actual needs, not hype.

Related Articles

Sources

  1. [1] CNCF Annual Survey 2024 -https://www.cncf.io/reports/cncf-annual-survey-2024/
  2. [2] Kubernetes Official Documentation -https://kubernetes.io/docs/home/
  3. [3] Stack Overflow Developer Survey 2024 -https://survey.stackoverflow.co/2024/
  4. [4] Datadog Container Report 2024 -https://www.datadoghq.com/container-report/
  5. [5] AWS App Runner Pricing -https://aws.amazon.com/apprunner/pricing/
  6. [6] Google Cloud Run Documentation -https://cloud.google.com/run/docs
  7. [7] Azure Kubernetes Service (AKS) Pricing -https://azure.microsoft.com/en-us/pricing/details/kubernetes-service/
  8. [8] Docker Compose Documentation -https://docs.docker.com/compose/
  9. [9] HashiCorp Nomad vs Kubernetes -https://www.nomadproject.io/docs/nomad-vs-kubernetes
  10. [10] Fly.io Platform Documentation -https://fly.io/docs/
Kubernetes is Overkill for 80% of Projects - Do You Really Need It? | Wojciechowski.app | Wojciechowski.app