You’ve spent two weeks vibe-coding a new product with GPT, Claude, or Gemini. Features are shipping daily. Then comes the “shortcut” that isn’t: setting up a Kubernetes cluster to “do it right.” Stop right there.
Kubernetes is an incredible platform for large-scale systems. But for a minimum viable product, it’s usually the wrong choice. This guide will show you why your MVP doesn’t need a Kubernetes cluster, what you should run instead, and how to migrate later without tearing anything down.
Why Kubernetes Became the Default
Kubernetes was born inside Google as Borg and open-sourced in 2014. It uses containers, application instances that ship with their own libraries and dependencies. The platform groups containers into pods and schedules them to run across many machines (nodes). It handles networking, service discovery, load balancing, and rolling updates.
That’s powerful. It also means you now operate a distributed system that has its own control plane, crash loops, taints, tolerations, and persistent volume claims. The educational cost is enormous.
The CNCF Annual Survey 2023 noted that Kubernetes is “the dominant container orchestration technology,” but that finding does not imply it’s the right tool for every project. Operational complexity remains one of the most common reasons teams revert to simpler infrastructure.
The Misunderstood Orchestration
People assume Kubernetes gives you “scaling” and “resilience” out of the box. In reality, autoscaling in Kubernetes requires horizontal pod autoscalers (HPA), resource request/limit tuning, and cluster autoscaling for nodes. Small problems with load tests can cause your cluster to throttle indefinitely. The platform only orchestrates containers; it does not make your application more reliable.
For an MVP, you can get 99.9 percent reliability from a single VM with systemd, Docker, and a simple watchdog. Or even better, use a managed platform that provides that reliability to you.
Serverless vs Containers in 2026
When you decide to move beyond a single VM, two main categories stand out.
Serverless Functions
Platforms such as AWS Lambda, Cloudflare Workers, Vercel Functions, or Deno Deploy run code in response to events. They have no idle cost, scale to zero, and require almost no infrastructure setup. Great for lightweight APIs, cron jobs, form handlers, webhooks, and chat bots. However, they are less suitable for long-lived connections (WebSockets, streaming) or stateful processes.
Containers Without Orchestration
If your app is a container, you can deploy it to Fly.io, Railway, Render, AWS App Runner, Google Cloud Run, or Azure Container Apps. These platforms instantiate your Docker image in a managed environment. They provide auto-scaling, health checks, TLS, and rolling deployments. You do not need to manage any underlying nodes.
The table below compares the categories.
| Dimension | Kubernetes (self-managed) | Managed Kubernetes (EKS/GKE/AKS) | Container PaaS (Cloud Run, Fly.io) | Serverless (Lambda, Workers) |
|---|---|---|---|---|
| Setup time | Days-weeks | Hours-days | Minutes | Minutes |
| Operational expertise needed | High | Medium | Low | None |
| Scaling | Pod and node autoscaling | Same | Automatic per request/container | Bursting |
| Stateful services | Complex | Complex | Complex, but you usually use managed DB | Not recommended |
| Cold starts | No | No | Slight for idle containers | Sometimes significant |
| Monthly cost at low traffic | High | Medium-High | Low | Extremely low |
| Lock-in | None | Mostly none | Moderate | High |
For most MVP workloads, the remaining column after Kubernetes is all you need.
A Cost Breakdown: Why Kubernetes Is More Expensive Than You Think
A Kubernetes cluster is never just the nodes. On AWS, a toy EKS cluster includes three EC2 instances, a NAT gateway, an Elastic Load Balancer, and a log group. Many teams also add a managed monitoring tool like Datadog or Grafana Cloud. The list price can reach $200–500 per month before you place a single production load. On the same budget, you can run a serverless app with thousands of requests per day and a managed PostgreSQL database. Serverless may even be free at your early traffic level.
Stateful Workloads: The Trap of Running Your Own Database
Kubernetes makes stateful services (databases, queues, search indexes) noticeably harder. You need PersistentVolumes, StatefulSets, and careful pod identity management. Backups, failover, and resizes are still manual.
Meanwhile, managed databases like Supabase, Neon, MongoDB Atlas, Redis Cloud, and AWS RDS offer point-in-time recovery, automated replication, and a REST API. They also handle security updates.
A practical rule: keep all state out of Kubernetes. Run only stateless application containers in the cloud. This reduces complexity tenfold.
The Twelve-Factor App, a canonical methodology for building modern software, recommends treating databases and queues as “attached resources”. That means connecting to them via URLs in environment variables. You can switch from your local Postgres to a managed Postgres just by changing an env var.
A Concrete Example: Docker Compose vs Kubernetes
Here is the entire infrastructure for a typical MVP using Docker Compose on a single VM:
version: "3.8"
services:
api:
build: .
ports:
- "8080:8080"
environment:
DATABASE_URL: postgres://user:pass@db:5432/app
db:
image: postgres:16
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Now look at what Kubernetes needs, even for the smallest deployment:
- Deployment (replicas, image, env vars, resource limits)
- Service (internal cluster IP)
- ConfigMap (or Secret) for environment values
- Ingress (or LoadBalancer) for public traffic
- PersistentVolumeClaim for the Postgres data
- HorizontalPodAutoscaler for scaling
That is more than 150 lines of YAML, and it doesn’t include TLS, monitoring, or backups. If you deploy with a managed platform like Google Cloud Run, the equivalent is a single gcloud run deploy command with the --image flag. You get an HTTPS endpoint automatically.
This is why your MVP doesn’t need a Kubernetes cluster.
When Kubernetes Actually Makes Sense
Consider Kubernetes only if you answer “yes” to at least four of these:
- You operate several independent services that need separate autoscaling paths.
- Traffic patterns include sudden, predictable spikes (for example, an hourly or event-season load).
- You serve users across many regions and need to route traffic to nodes dynamically.
- Your compliance team requires you to run on your own infrastructure rather than a platform.
- You have at least 2–3 engineers who can spend 30–50 percent of their time on cluster operations.
- Your startup already has paying customers and measurable technical risk.
An MVP usually fails on most of these. Even when you meet them, choose managed Kubernetes (EKS, GKE, AKS) rather than running a cluster from scratch.
Common Infrastructure Mistakes in MVP Development
- Using Kubernetes to “future-proof” an idea nobody has validated yet.
- Splitting your codebase into microservices before your first paying customer.
- Running your own Postgres or Redis with a single Docker volume and no backups.
- Writing custom ingress rules instead of letting the platform handle HTTPS.
- Starting with Prometheus, Grafana, Loki, and OpenTelemetry before you understand your metrics.
- Treating infrastructure as a full-time job when you only have a few hundred users.
Right-Sizing Architecture: A Practical Playbook
Follow this sequence to keep your MVP fast and shippable.
Build a modular monolith
Instead of splitting APIs into 10 microservices, write one application with clearly separated modules (billing, users, notifications). This is easier for one or two engineers to reason about. The Twelve-Factor App methodology also recommends keeping code and runtime configuration separate.
Use managed stateful services
Never run your own Postgres inside a container unless you have clear backups and recovery tools. Use:
- Supabase or Neon for PostgreSQL
- MongoDB Atlas for document data
- Redis Cloud or Upstash for caches and queues
- AWS S3 or Cloudflare R2 for files
If you use a managed database, you don’t need Kubernetes persistent volumes at all.
Keep configuration in environment variables
Both Cloud Run and Vercel support .env files and secret references. This avoids secret management tools like Vault until you really need them.
Add a health check
Deploy a /healthz endpoint that checks your database connection and returns a simple JSON. The managed platform will use it for zero-downtime restarts. This is enough for an MVP.
Monitor with the platform’s logs
Do not start with Prometheus and Grafana. Use the built-in log explorer (Cloud Logging, Vercel Logs, or Docker logs). Set up a simple alert if the log stream stops or an error threshold is crossed.
Plan for growth without a migration
If you grow, move one piece at a time. The beauty of separating the API from the database is that you can point the same API code to a managed database first. Then push the API to Cloud Run or a dedicated container. Then add background workers on AWS SQS or a simple Redis queue. Kubernetes never has to appear in this story.
What About Helm, Istio, and Operators?
If you hear “we need Helm charts, Istio, and Prometheus”, run. These are not first steps; they are third- and fourth-order tools. Helm is a package manager for Kubernetes, Istio is a service mesh that adds a proxy to every pod, and Prometheus is a monitoring system with its own query language. For an MVP, each one of them increases your learning curve and debugging surface by an order of magnitude.
Keep your stack boring. A plain Dockerfile, a managed database, and a workspace on Vercel or Cloud Run are enough.
Security Is Simpler at Small Scale
Security doesn’t mean adding more moving parts; it means reducing attack surface. A single VM with Docker has:
- no exposed Kubernetes API server,
- no cluster-admin RBAC risks,
- node updates handled by your OS,
- one small firewall rule.
Managed platforms also provide automatic security patches for the runtime. For an MVP, this is vastly better than you maintaining a cluster with a cracked control plane.
Real-World Context: Vibe Coding and Over-Engineering
The wave of vibe coding, where AI assistants generate code in real time, has changed the economics of building a product. Instead of spending six months on a backend, founders can generate a working prototype in a weekend. The temptation is to add infrastructure that seems “production-ready.” But the most dangerous moment for an MVP is the time between launching and discovering whether anyone wants the product.
Infrastructure decisions that delay that launch are procrastination. If you’re spending more time configuring Kubernetes than talking to users, you’re no longer building a product. Many developers have learned this the hard way. Keep your option value: simple deployments are easy to tear down and replace.
How to Start Today
- Write a Dockerfile for your app (if you haven’t yet).
- Initialize a local docker-compose.yml for your app plus a managed database.
- Deploy to a single VM using Dokku or to Cloud Run with one command (
gcloud run deploy). - Set up a git-based deploy (GitHub Actions) or use the platform’s native Git integration.
- Measure: get your first 100 users before even thinking about Kubernetes.
When you are ready to connect a payment gateway or a notification service, most of these platforms support simple webhooks and REST calls. Integration works the same as in a Kubernetes cluster. If you want a structured guide to API integration patterns, ASI Biont has a course covering exactly this—see asibiont.com/courses.
Conclusion
Kubernetes is a beautiful, battle-tested platform for companies that have outgrown simpler tools. Your MVP does not have that problem. Choose a managed platform or a single VM, keep your database managed, and spend your time on distribution and product feedback.
Remember: a successful MVP is not the one with the most complex architecture—it’s the one that learns the most in the shortest time. Build like the giants did before Kubernetes: simple, boring, and reliable.
Sources:
- Kubernetes Official Documentation — https://kubernetes.io/docs/concepts/overview/
- CNCF Annual Survey 2023 — https://www.cncf.io/reports/cncf-annual-survey-2023/
- The Twelve-Factor App, “Backing Services” — https://12factor.net/backing-services
- Google Cloud DORA Report — https://dora.dev/publications/
- Docker Compose Reference — https://docs.docker.com/compose/
Comments