Docker changed the way many of us develop and deploy applications.
Then Kubernetes became popular.
Now almost every developer has heard about Kubernetes.
But I still see one simple question coming again and again:
"Do I really need Kubernetes?"
My answer is:
Sometimes yes. Many times no.
And I think this is an important distinction because Kubernetes is extremely powerful, but power also brings complexity.
In 2026, cloud-native development is no longer something used only by a few large technology companies. CNCF and SlashData estimate that the global cloud-native developer community has reached around 19.9 million developers, and 88% of backend developers now work in standardized DevOps or platform environments.
Kubernetes has also become a major part of production infrastructure. CNCF reported that 82% of container users are running Kubernetes in production.
So Kubernetes is clearly important.
But that does not mean every Laravel developer should immediately move every project to Kubernetes.
First, Docker and Kubernetes are not competitors
This is the first thing I want to clear up.
Docker and Kubernetes solve different problems.
Docker helps us package and run applications in containers.
Kubernetes helps us manage containers and workloads at scale.
A simple way I think about it is:
Docker
Build
Package
Run
IsolateWhile Kubernetes is more about:
Kubernetes
Schedule
Scale
Restart
Network
Deploy
ManageSo asking:
"Should I use Docker or Kubernetes?"
is not really the right question.
They can exist together.
A simple Laravel application does not need Kubernetes
Suppose I have:
Laravel
MySQL
Redis
Nginxwith:
10 usersor even:
500 usersDo I need Kubernetes?
Probably not.
I can run this very comfortably on:
- A VPS
- Managed hosting
- Docker Compose
- A simple cloud server
Adding Kubernetes could actually make the system harder to maintain.
Now I have to think about:
- Kubernetes clusters
- Pods
- Deployments
- Services
- Ingress
- ConfigMaps
- Secrets
- Persistent volumes
- Health checks
- Resource requests
- Resource limits
- Networking
- Cluster upgrades
- Monitoring
For a small application, that can be a lot of infrastructure for very little benefit.
Kubernetes becomes interesting when scale becomes a problem
Now imagine something different.
We have a SaaS application.
There are:
50,000 usersand:
multiple application servers
multiple queue workers
multiple environments
frequent deployments
high traffic
multiple regionsNow the problem changes.
We don't simply need:
"Run Laravel."
We need:
"Run many instances of Laravel reliably."
This is where Kubernetes becomes interesting.
Imagine three Laravel servers
Without orchestration, we might have:
Server 1
Server 2
Server 3Then somebody needs to manage:
Which server receives traffic?
What happens when Server 2 crashes?
How do we deploy a new version?
How do we add Server 4?
How do we restart unhealthy processes?
How do we roll back?
How do we make sure all servers are running the correct version?
Kubernetes is designed to solve problems like these.
Kubernetes does not make bad architecture good
This is one lesson I strongly believe in.
Suppose the Laravel application has:
- Bad database queries
- Missing indexes
- N+1 queries
- Memory leaks
- Poor caching
- Bad API design
Putting it into Kubernetes does not fix any of those things.
We now have:
Bad application
+
Kubernetes
=
More infrastructureNot a better application.
Before scaling infrastructure, we should understand whether the actual problem is:
- CPU
- Memory
- Database
- Network
- Application code
- Queue processing
- External API
- Storage
Sometimes one database index can fix the problem that someone was planning to solve with ten more servers.
Horizontal scaling is where Kubernetes starts making more sense
Suppose our Laravel application currently handles:
1,000 requests/minuteThen traffic increases to:
10,000 requests/minuteWe may need more application instances.
Kubernetes can manage multiple replicas.
For example:
Laravel Pod 1
Laravel Pod 2
Laravel Pod 3
Laravel Pod 4The application can then distribute traffic across them.
If the workload increases further:
Laravel Pod 1
Laravel Pod 2
Laravel Pod 3
Laravel Pod 4
Laravel Pod 5
Laravel Pod 6
Laravel Pod 7
Laravel Pod 8This can be managed much more systematically.
That is where orchestration becomes useful.
Kubernetes is also about failure recovery
Production systems fail.
A server crashes.
A process consumes too much memory.
A deployment goes wrong.
A container stops.
A network connection fails.
The important question is not:
"Will something fail?"
It will.
The important question is:
"What happens when it fails?"
Kubernetes is designed to continuously work toward the desired state.
For example:
Desired:
3 application instancesBut one crashes.
Current:
2The platform can work to restore:
3This is a very different operational model from manually logging into a server and restarting processes.
Deployments are another major advantage
Let's imagine I deploy:
Version 1Everything works.
Then I release:
Version 2Something goes wrong.
In a mature deployment setup, we want:
Version 1
↓
Version 2
↓
Health check
↓
Successor:
Version 1
↓
Version 2
↓
Failure
↓
RollbackKubernetes provides primitives for controlled deployments, rollout management and maintaining desired application state.
This is one of the biggest reasons large engineering organizations adopt it.
But Kubernetes introduces another problem
And this is the part I think developers sometimes underestimate.
Kubernetes itself becomes a system we need to operate.
You are not simply managing your application anymore.
You are also managing the platform running your application.
Now you need to understand:
Cluster
Node
Pod
Deployment
Service
Ingress
Namespace
ConfigMap
Secret
Volume
SchedulerAnd then:
Monitoring
Logging
Networking
Security
Backups
Upgrades
CostsThis is why I don't recommend Kubernetes just because:
"Big companies use it."
That is not a technical reason.
There is a maturity curve
For me, application infrastructure often looks something like this:
Shared Hosting
↓
VPS
↓
Docker
↓
Docker Compose
↓
Managed Containers
↓
KubernetesNot every project needs to travel through every stage.
Some applications can stay on VPS for years.
Some need Docker.
Some need managed container services.
Some genuinely need Kubernetes.
The architecture should follow the problem.
Platform engineering is becoming important
There is another trend connected to Kubernetes that I find even more interesting.
Instead of asking every developer to become a Kubernetes expert, companies are increasingly building internal platforms.
The idea is:
Developers should be able to deploy applications without understanding every infrastructure detail underneath.
CNCF's 2026 research highlights the growth of platform engineering and internal developer platforms, with developers increasingly accessing Kubernetes and other infrastructure through standardized platform environments rather than directly managing everything themselves.
I think this is a very important direction.
Developers don't always need the entire infrastructure
Suppose I am a Laravel developer.
I want to say:
Deploy this Laravel application.I may not want to manually think about:
Which node?
Which pod?
Which network?
Which scheduler?
Which ingress rule?
Which scaling policy?A good internal platform can hide much of that complexity.
The developer interacts with the platform.
The platform handles the infrastructure.
This is one of the major ideas behind platform engineering.
Kubernetes is becoming infrastructure, not the developer experience
This is an important distinction.
A platform team may manage:
Kubernetesbut the application developer may only interact with:
Git
CI/CD
Deployment configuration
Logs
Metrics
Application settingsI think this is healthier than telling every developer:
"Learn 200 Kubernetes commands before you can deploy."
Infrastructure should enable developers, not become a barrier.
What about Laravel queues?
This is where Kubernetes can become particularly useful.
Imagine a Laravel SaaS application with:
Web traffic
Queue workers
Scheduled tasks
Reports
Imports
Exports
NotificationsThese workloads do not always need the same resources.
For example:
Web
4 instanceswhile:
Queue workers
10 instancesand:
Heavy reporting workers
2 large instancesThe platform can treat these workloads independently.
This is much cleaner than putting everything into the same server and hoping the workload remains balanced.
But Redis and MySQL are a different discussion
I would not automatically put every component into Kubernetes just because the Laravel application is there.
For databases such as MySQL or PostgreSQL, the operational requirements are very different.
We need to think about:
- Persistent storage
- Backups
- Replication
- Recovery
- Failover
- Performance
- Data durability
In many cases, I would rather use a managed database than operate a production database myself inside Kubernetes.
The same thinking applies to other stateful services.
Kubernetes is very powerful, but:
Stateless workloads are usually much easier to manage than stateful workloads.
Kubernetes is not cheap just because it is open source
This is another thing we need to understand.
Kubernetes itself is open source.
But operating Kubernetes is not free.
There can be costs for:
- Control plane
- Compute
- Storage
- Networking
- Load balancers
- Monitoring
- Logging
- Backups
- Engineering time
And engineering time is a real cost.
Sometimes a simple VPS costing a few thousand rupees per month can run an application perfectly well.
Moving that application to a Kubernetes platform can increase both infrastructure and operational costs without delivering any meaningful benefit.
For Indian SaaS companies, this matters a lot
I think this is especially relevant for startups and smaller SaaS companies in India.
Budgets matter.
Engineering teams are often small.
A team may have:
3 developersor:
5 developersThey already need to build:
- Product
- APIs
- Frontend
- Mobile app
- Billing
- Support
- Security
- Backups
- Monitoring
Adding a complicated infrastructure stack can consume valuable engineering time.
Infrastructure should support the product.
It should not become the product.
I would first solve the application's real bottleneck
Suppose my Laravel application is slow.
I would check:
Database queries
Indexes
N+1
Caching
Redis
Queue design
PHP-FPM
OPcache
Network calls
External APIs
Server resourcesThen I would measure.
Only after understanding the bottleneck would I consider more infrastructure.
For me:
Measure first. Scale second.
This is one of the simplest rules that can save a lot of money.
So when would I choose Kubernetes?
I would seriously consider Kubernetes when I have several of these requirements together:
High traffic.
Many application instances.
Frequent deployments.
Multiple services.
Autoscaling.
Multiple teams.
Strong availability requirements.
Standardized deployment processes.
Complex workload scheduling.
Multiple environments.
A dedicated DevOps or platform team.
At that point, Kubernetes starts solving real problems.
When would I not choose it?
I would probably avoid Kubernetes when I have:
A small Laravel application.
Low traffic.
A small team.
One or two servers.
Simple deployment requirements.
A single database.
Few services.
No need for advanced orchestration.
In that situation, Docker plus a VPS or a managed container platform can be a much better decision.
My preferred mindset
I don't want to choose:
Kubernetesbecause somebody on LinkedIn said:
"Modern companies use Kubernetes."
I want to choose it because my application has problems that Kubernetes is actually good at solving.
That difference is important.
Technology should follow architecture.
Architecture should follow requirements.
Requirements should follow the business.
My final view
Docker taught many developers how to package an application.
Kubernetes teaches organizations how to operate many applications and workloads at scale.
Both are valuable.
But I don't think every developer needs to run Kubernetes locally.
And I definitely don't think every Laravel application needs a Kubernetes cluster.
For my kind of development, I would learn Kubernetes because it is becoming an important part of modern infrastructure, but I would introduce it into a production project only when the operational requirements justify it.
The real skill is not knowing how to use the biggest technology.
The real skill is knowing when not to use it.
That is something I have learned again and again in software development.
A simple system that works reliably is better than a complicated system that looks impressive on an architecture diagram.