What Kubernetes actually gives you

Underneath the marketing, Kubernetes solves a specific set of problems extremely well. It schedules workloads across many machines without operators making decisions per workload. It handles rolling deployments and rollbacks. It provides declarative configuration that can be versioned. It abstracts the underlying infrastructure so workloads can move between environments. It enables horizontal scaling and self-healing. It provides a consistent API for compute, networking, and storage primitives.

That is a genuinely impressive list. But every item on it has a cost. Self-healing requires you to define liveness and readiness probes well. Declarative configuration requires GitOps discipline. Networking requires you to understand services, ingress controllers, network policies, and (sometimes) service meshes. Storage requires you to understand persistent volumes, storage classes, and the reliability profile of each. None of this is free.

The honest framing is that Kubernetes is a force multiplier, not a starting point. It pays off when the team has multiple workloads that benefit from a shared platform. It is a heavy investment for a single application.

When Kubernetes is the right call for legacy modernization

There are scenarios where the platform earns its keep, even in legacy modernization contexts. The strongest signals:

  • You are modernizing many applications, not one. The fixed cost of running Kubernetes amortizes across workloads. With dozens of services, the platform pays for itself in operational consistency.
  • You need consistent operations across environments. If your modernization spans on-premise, cloud, edge, or multiple regions, Kubernetes provides a unified operational model that other platforms cannot easily match.
  • Your team is committed to platform engineering. Kubernetes works when you treat the platform itself as a product, with dedicated investment in observability, security, golden paths, and developer experience.
  • You need bin-packing efficiency. For workloads with heterogeneous resource profiles, Kubernetes scheduling can significantly reduce compute cost compared to single-purpose virtual machines.
  • Your modernization end state is event-driven and elastic. Auto-scaling, especially with KEDA or HPA, makes a real difference for event-driven workloads with variable load.

For these scenarios, especially when paired with managed offerings like EKS, AKS, or GKE Autopilot, the platform cost is reasonable and the benefits accrue quickly.

When Kubernetes is the wrong call

Equally important is recognizing when Kubernetes is over-engineering. The warning signs we see most often:

  • You have a small number of stable workloads. If your portfolio is three or four applications that change rarely, the operational overhead of Kubernetes will outweigh its benefits.
  • You do not have the team to operate it. Kubernetes is not a product you buy. It is a platform you operate. Without dedicated engineering investment, the platform becomes the bottleneck.
  • The application is fundamentally not designed for it. Stateful, single-tenant, heavy-startup applications with no health probes and no horizontal scaling do not magically benefit from being in Kubernetes.
  • The driver is resume building, not business value. If the choice is being made because Kubernetes is fashionable, the business is paying for fashion.
  • You need fast time to market and the team is new to containers. The learning curve is real, and the first six months can be very slow.

Lighter alternatives that often fit better

Between bare VMs and Kubernetes, there is a whole spectrum of platforms that deliver many of the benefits with a fraction of the operational cost. Depending on the scenario, any of these may be a better starting point:

Managed container services

AWS ECS with Fargate, Azure Container Apps, Google Cloud Run. Containers without the cluster you operate. Often the right step on the way to (or instead of) Kubernetes.

App Service / Elastic Beanstalk

Platform-as-a-service offerings hide the infrastructure entirely. Excellent for stable web applications that do not need fine-grained control.

Serverless functions

For event-driven and request-driven workloads, Lambda, Azure Functions, or Cloud Functions can eliminate most of the operational concern.

Nomad

HashiCorp Nomad is lightweight, easier to operate, and often sufficient for teams that want scheduling without the full Kubernetes ecosystem.

Pure VM with IaC

Sometimes a well-provisioned virtual machine, deployed by Terraform, with simple deployment automation, is the most boring and most appropriate answer.

Pivotal Cloud Foundry

Still in use in many enterprises. Higher-level abstraction, simpler developer experience, narrower flexibility than Kubernetes.

A simple decision framework

Before committing to Kubernetes, we usually ask the team to answer four questions honestly:

  1. How many distinct workloads will run on this platform in the next 24 months?
  2. Does the team have the bandwidth and skills to operate a Kubernetes platform sustainably?
  3. What concrete capability does Kubernetes give us that a managed container service or PaaS does not?
  4. If we did not run Kubernetes, what would block us in six months?

If the first answer is small, the second is no, the third is vague, or the fourth is "nothing concrete", a lighter platform is almost always a better starting point. You can always migrate to Kubernetes later if the workload mix evolves. The reverse — migrating back from Kubernetes — is much harder.

If you do migrate, do this

For modernizations where Kubernetes is the right call, the most expensive mistakes are predictable. Avoid them by:

  • Starting with a managed offering. Self-managed Kubernetes is a significant undertaking. EKS, AKS, and GKE remove most of the control plane burden. For greenfield, GKE Autopilot reduces it further.
  • Investing in golden paths. Provide opinionated templates, libraries, and tooling so every team does not reinvent observability, deployment, and secrets management.
  • Treating the platform as a product. Identify a platform team, define service-level objectives, gather feedback from internal users, and iterate.
  • Containerizing carefully. Not every legacy application is a good citizen in containers. Long startup times, heavy memory use, and shared state need explicit handling.
  • Building security in from day one. Network policies, pod security, image scanning, and least-privilege service accounts are dramatically easier to introduce early than to retrofit.

Final takeaway

Kubernetes is the right answer for a real set of problems. It is the wrong answer for everything else. The discipline is to choose deliberately, knowing the cost, and to keep the platform investment proportional to the problem it solves.

Deciding on a platform for modernization?

If you are evaluating Kubernetes, managed services, or a lighter platform for your modernization, we can help you frame the trade-offs based on your actual workload portfolio.

Talk to Soutello IT about platform strategy