Agentic hosting is here. Connect to our MCP now ->

Blog

Kubernetes is not your problem

For Laravel teams, Kubernetes is not the next logical step. It is a detour that quietly redirects your best engineers away from the product.

·by Steve McDougall

This is for engineering leads and CTOs running Laravel applications in production who are either already on Kubernetes, being pulled toward it, or sitting in a planning meeting where someone is making the case for it. Not for platform engineers whose job is container orchestration. Not for teams building infrastructure products. For product teams who are trying to ship software faster and have started noticing that the infrastructure they are running is working against that goal.

Kubernetes is not the next logical step for most Laravel teams. It is a detour that your best engineers will still be paying for in two years.

What Kubernetes actually solves

Kubernetes was built by Google to manage thousands of containerised services across distributed infrastructure at a scale where manual coordination breaks down entirely. Scheduling, scaling, self-healing, service discovery, rolling deployments across clusters that no human could operate directly. It is a serious platform solving a serious problem.

That problem is not yours.

Your problem is running a Laravel application reliably in production. A web layer, a queue worker, a scheduler, a database, Redis. The operational requirement is that it runs, deploys without drama, and recovers when something goes wrong. That is a hosting problem. Kubernetes solves an orchestration problem. Choosing a tool built for one to solve the other has a cost most teams only fully understand after they have already paid it.

What you are taking on

Moving a Laravel application onto Kubernetes is not adding a deployment target. It is acquiring a platform that demands sustained specialist expertise to operate.

Cluster provisioning and node pool management. Namespace design and RBAC policy for every team member and service account. An Ingress controller, because Kubernetes does not come with one, configured for TLS termination and routing rules that have to be kept in sync with your application. Deployment and Service manifests for every component. ConfigMaps and Secrets managed separately from your application config. Liveness and readiness probes calibrated per container so Kubernetes knows when to route traffic and when to restart. Resource requests and limits set for every pod, because without them the scheduler makes decisions you will not understand until something falls over under load. A logging stack, because Kubernetes also does not come with one. An alerting stack, same reason.

Every one of those is a thing your team has to build, understand, and keep current. Every one is a potential source of production incidents that require Kubernetes-specific knowledge to diagnose. The engineer who configured the Ingress is the engineer who gets called when it starts returning 502s at midnight. That person was hired to build your product.

Then there is the upgrade cycle. Kubernetes releases a new minor version every four months. EKS, GKE, and AKS each have their own support windows. Staying current is not optional because older versions stop receiving security patches. Staying current on Kubernetes is itself a recurring engineering project, one that produces no features and no product progress and cannot be deferred indefinitely.

You did not choose this. You inherited its complexity, or you are about to. Either way, the cost is real and it starts immediately.

The stack you are already running

Before adding Kubernetes, consider what a standard Laravel production setup already requires without it. ALB for load balancing. EC2 or ECS for compute. RDS for the database. ElastiCache for Redis. SQS for queues. S3 for file storage. CloudWatch for logs and alerting. Route 53 for DNS. ACM for TLS certificates. IAM to wire permissions between all of it.

AWS is overkill for most product teams, and that list is exactly why. Each of those services requires configuration, maintenance, and someone who understands how it connects to everything else. Kubernetes does not replace any of it. It sits on top of the same AWS primitives and adds an orchestration layer that requires its own specialist knowledge to operate.

With Sevalla, you do not need or manage any of those services. Sevalla handles the infrastructure.

Sevalla exists for the 90% of teams who should not be running AWS at all. It is a production-grade platform built specifically for Laravel applications. Your application runs. Your queue workers run. Your scheduler fires. Deployments happen on git push. The entire operational surface that Kubernetes and AWS together ask your team to build, staff, and maintain simply does not exist.

That is not a future state contingent on migration. It is what your team's week looks like when the platform is matched to the actual problem.

The roadmap cost

The Kubernetes tax on a product engineering team does not show up as a line item. It shows up as a pattern in your sprint velocity.

Someone becomes the Kubernetes person. Informally, inevitably. They are the one who knows why the pod is stuck in Pending. They are the one who debugs the CrashLoopBackOff at 11pm. They are the one who owns the cert-manager configuration and the ingress rules and the RBAC policies. When the cluster needs upgrading, they own that too.

That person is your most experienced engineer. They know the application deeply, they understand the architecture, they are the person you most need making product decisions. Instead, they are a cluster administrator. Every week they spend on Kubernetes manifests and node pool configuration is a week where your roadmap moves more slowly than it should, and the bottleneck is invisible because it looks like infrastructure work rather than blocked features.

The rest of the team feels it differently. Junior engineers cannot contribute to Kubernetes work because they do not have the context. New hires cannot be productive on day one because the deployment environment is incomprehensible without weeks of orientation. Architectural decisions get made under time pressure because the Kubernetes maintenance work consumed the sprint capacity that was supposed to go to planning.

Every quarter this is the pattern, your product is a quarter behind where it would be on a platform that did not require this. That is not a soft cost. It is the direct output of your engineering team being partially redirected to operating infrastructure that does not advance your product by a single feature.

What you are getting in return

Control over container scheduling. That is the honest answer.

Kubernetes gives you the ability to specify exactly how your workloads are placed, scaled, and managed across a cluster. If you are running dozens of interdependent microservices, need multi-tenant workload isolation, or have compliance requirements that demand specific scheduling constraints, that control is worth the operational cost.

Most Laravel product teams need none of that. They need the application to serve requests, the queue to process jobs, and deploys to work. The control Kubernetes provides is control over infrastructure decisions that have no bearing on their product. A managed platform makes those decisions correctly without requiring the team to understand or maintain the layer that makes them.

If your team does not have a dedicated platform engineering function whose job is running the cluster, you are not using Kubernetes. You are being used by it.

What the alternative actually looks like

A Laravel application on Sevalla does not need Kubernetes, EKS, or a cluster of any kind. You push to Git. The application deploys. Queue workers run continuously. The scheduler fires. Databases and Redis are managed. TLS is handled. The deployment is production-grade and the only operational surface your team owns is the application code, which is the only layer where their expertise produces actual value.

The teams that move off Kubernetes do not primarily talk about recovering cloud spend. They talk about recovering their senior engineers. The person who was running the cluster starts working on the product again. Deployment stops being a risk assessment and becomes a routine act. New engineers can understand the entire deployment environment in an hour instead of a week. The roadmap starts moving at the speed the team is actually capable of.

That recovery is not gradual. It happens immediately, because the work that was consuming the time stops existing.

The active decision you are making

If your team is on Kubernetes already, staying there is not a neutral position. It is an active decision to continue paying the operational cost in exchange for control you may not need. The question is not whether it was the right call when you made it. The question is whether you would make it again today, knowing what it costs per sprint in engineering attention, roadmap velocity, and the ongoing drag on your most experienced engineers.

If your team is evaluating Kubernetes because it is the professional way to run containers, the question is what problem you are actually trying to solve. Running a Laravel application reliably is a hosting problem. Kubernetes is an orchestration platform built for a different problem entirely. Reaching for it to solve hosting is like hiring a distributed systems team to run a web application. The capability is real. The fit is not.

Most product teams running Laravel in production do not have a Kubernetes problem. They have a hosting problem, and they are one decision away from solving it without permanently assigning their best engineers to a platform that was never designed for them.

Sevalla is the platform built for teams who have worked this out. The infrastructure runs. The product ships. That is the arrangement your engineers were hired for.

Deep dive into the cloud!

Stake your claim on the Interwebz today with Sevalla's platform!
Deploy your application, database, or static site in minutes.

Get started