Kubernetes Alternatives for Small Teams in 2026: Run Containers on a Few Servers Without K8s

Nick Potts, who builds Ployz. Published , updated .

For a small team, the realistic Kubernetes alternatives are Docker Compose on one server, Docker Swarm, HashiCorp Nomad, K3s, Kamal, a managed container service (Fly.io, Cloud Run, ECS Fargate) or a self-hosted PaaS. Three small apps cost about $7 a month on one Hetzner server, $21 on a three-server Swarm or K3s cluster, $11 on Fly.io, $43 on Fargate with a load balancer and about $145 on always-on Cloud Run. Which one fits depends on two questions: how many servers you need, and whether something has to fail over without you.

Prices and facts checked 2026-10-01, from each vendor's own pages and docs, linked next to each number. Server prices are Hetzner's Europe prices before VAT unless I say otherwise.

The top Google results for "kubernetes alternatives" are vendor lists written for platform teams: OpenShift, Rancher, Mesos, EKS, AKS. None of them say how many servers each option needs or what it costs to run three apps. That's the part a small team needs, so that's what this page is.

Which Kubernetes alternative should a small team pick?

Pick by server count and by what has to happen when a server dies. One server: Docker Compose or a self-hosted PaaS on top of it. Two to five servers with replicas, where you can take a dead server out of DNS yourself: Kamal, Ployz or Swarm. Automatic failover on servers you rent: Swarm or K3s with three nodes. Autoscaling with no servers at all: Cloud Run, Fargate or Fly.io.

Your situationServersTeamAutoscaling or automatic failover?Pick
A few apps, one database, steady traffic11–3NoDocker Compose, or a self-hosted PaaS (Ployz, Coolify, Dokploy, Dokku) on the same server
Outgrew one server, want replicas on two or three2–51–5No, a person handles a dead serverPloyz, Kamal plus a load balancer, or Swarm
Must survive losing a server without anyone acting3+2–10Failover yes, autoscaling noDocker Swarm with 3 managers, or K3s HA
Spiky traffic, scale to zero, no servers to patch0AnyYesCloud Run, ECS Fargate or Fly.io
Team already knows Kubernetes, wants Helm and operators3+3–10YesK3s, or managed Kubernetes
Containers plus plain binaries, batch jobs, VMs3+ servers + clients3–10Failover yesNomad, after reading its license

What does each option cost for three small apps?

For three always-on apps with about 512 MB each, the server options cost $7 to $21 a month, Fly.io about $11, ECS Fargate about $43 once you add a load balancer, and Cloud Run about $145 on instance-based billing. The gap comes from the cluster minimum on self-hosted tools and the per-second compute price on managed services.

OptionWhat you pay forMonthly costSource
Docker Compose on one server1 Hetzner CX23 (2 vCPU, 4 GB) + IPv4about $7Hetzner price adjustment
Docker Swarm, 3 managers3 CX23, managers also run appsabout $21Swarm admin guide
K3s HA, embedded etcd3 CX23, servers also run appsabout $21K3s HA docs
Fly.io3 shared-cpu-1x Machines at 512 MB ($3.69 each, Ashburn)about $11Fly.io pricing
ECS on Fargate3 tasks at 0.25 vCPU / 0.5 GB ($9.01 each) + an ALB from $16.43about $43 + LCUsFargate pricing, ELB pricing
Cloud Run, instance-based3 instances at 1 vCPU / 0.5 GiB, minus the free tierabout $145Cloud Run pricing
Your own servers + Ployz2 CX23 + $9 for custom domains on Ployz Cloudabout $23Hetzner price adjustment

How I got the numbers:

  • Hetzner: a CX23 is $6.49 a month plus about $0.60 for its IPv4 address, so about $7.09, after the 15 June 2026 price rise. The CX line is in Germany and Finland only. In the US, Netcup's VPS 500 (2 vCPU, 4 GB, 64 GB) is €8.26 a month incl. VAT on a 12-month term, about €1 more in its Manassas datacenter (Netcup VPS).
  • Fargate: $0.000011244 per vCPU-second and $0.000001235 per GB-second for Linux on x86 in N. Virginia, which is $0.0405 per vCPU-hour and $0.0044 per GB-hour. An Application Load Balancer is $0.0225 an hour plus $0.008 per LCU-hour. Public IPv4 and data transfer come on top.
  • Cloud Run: instance-based billing is $0.000018 per vCPU-second and $0.000002 per GiB-second in us-central1, with 240,000 vCPU-seconds and 450,000 GiB-seconds free each month. One 1 vCPU instance running all month is about $47 of CPU. Request-based billing, where idle instances cost nothing, is $0.000024 per vCPU-second while active.
  • Fly.io: the 256 MB preset is $2.19 and extra RAM is $6 per GB-month, so 512 MB is $3.69 in Ashburn. Machines bill by the second while they run.

The Swarm and K3s rows assume your apps run on the three manager or server nodes, which both allow. A single-node Swarm or K3s costs the same $7 as Compose, but without failover.

Why are companies quitting Kubernetes?

Mostly because the cluster becomes a second product to maintain. Kubernetes supports only the three newest minor versions, each for about a year, so every cluster needs a minor upgrade every few months. Add-ons get retired, like Ingress NGINX in March 2026. For a team running a handful of apps, I think those hours cost more than the servers.

The upgrade treadmill is in the Kubernetes release docs: the project maintains 1.37, 1.36 and 1.35, and 1.34 reaches end of life on 27 October 2026. A cluster set up a year ago is already on the edge of support.

The Ingress NGINX retirement is a good example of the second cost. A lot of tutorials install it first. The Kubernetes project says that after March 2026 "there will be no further releases, no bugfixes, and no updates to resolve any security vulnerabilities" (Kubernetes blog). Existing installs keep working, but someone on your team now has a migration to plan.

My own reason was simpler: I wanted a few apps across a few servers without a control plane to run.

Docker Compose on one server: is it enough?

For most small teams, yes. One server with Docker Compose and a reverse proxy like Caddy runs several apps and a database, with HTTPS, for about $7 a month in Europe. It has no failover and no scheduler. If the server dies, you're down until you restore it somewhere else. Many teams never outgrow it.

Today everything I run sits on one dedicated server at €80 a month, and that's more than I ever ran on Railway when I was paying $500+ a month there. What one server doesn't give you is a second machine to fail over to. For what the hosted platforms charge for the same apps, see PaaS pricing.

Docker Swarm vs Kubernetes: is Swarm still supported?

Yes. Swarm mode is built into Docker Engine and still maintained, and Mirantis says Swarm "will be fully supported through at least 2030" in its Mirantis Kubernetes Engine 3. Compared with Kubernetes, Swarm uses the same Compose-style files you already know and has far fewer moving parts. It has a much smaller ecosystem, and fewer people know it.

Two things get mixed up. Docker's docs say: "Docker Swarm mode is built into the Docker Engine", and warn not to confuse it "with Docker Classic Swarm which is no longer actively developed" (Docker docs). Classic Swarm is the old standalone project. Swarm mode is what you get with docker swarm init today. Mirantis, which bought Docker's enterprise business, made its support pledge in a July 2025 post.

So "what replaced Docker Swarm?" has two answers. Swarm mode replaced Classic Swarm. And in the market, Kubernetes won, which is why Swarm has fewer tutorials, integrations and hires.

Docker SwarmKubernetes (K3s)
InstallBuilt into Docker EngineOne binary for K3s; more parts for upstream
Config formatCompose files (docker stack deploy)Kubernetes manifests, Helm charts
Servers for HA3 managers (Docker docs)3 server nodes (K3s docs)
Minimum per nodeNo separate control plane process2 cores and 2 GB for a K3s server node (K3s docs)
AutoscalingNo built-in autoscalerHorizontal Pod Autoscaler
EcosystemSmallVery large

The quorum maths is the same for both. Docker's table: 3 managers survive 1 failure, 5 survive 2, and "an odd number of managers is recommended, because the next even number does not make the quorum easier to keep." Two managers is worse than one.

Swarm is also what Dokploy uses when you add servers to it (Dokploy cluster docs). Coolify went the other way: its docs now mark Swarm support "experimental and deprecated", set for removal in Coolify v5 (Coolify docs).

Nomad vs Kubernetes: what changed with the license?

Nomad is a single binary that schedules containers, plain executables and VMs, and it's simpler than Kubernetes to run. Since August 2023, new releases are under the Business Source License 1.1 instead of MPL 2.0. Production use is allowed unless you offer Nomad to others to compete with IBM's paid version. Its official production sizing is large for a small team.

The current Nomad license file names IBM as the licensor and covers "Nomad Version 1.7.0 or later". Its additional use grant: "You may make production use of the Licensed Work, provided Your use does not include offering the Licensed Work to third parties on a hosted or embedded basis in order to compete with IBM Corp's paid version(s)". Each release converts to MPL 2.0 four years after it's published. HashiCorp announced the switch on 10 August 2023. For running your own apps, the license doesn't stop you.

The sizing is what puts me off for small teams. HashiCorp's production requirements say "usually running 3-5 servers in a region is recommended", with "4-8+ cores, 16-32 GB+ of memory" each. Those servers coordinate. Your apps run on separate client nodes.

I think Nomad is a good pick when you have mixed workloads, like batch jobs, binaries and containers together, and three or more people who'll own it. For three web apps, it's more cluster than you need.

Is K3s a real alternative to Kubernetes?

K3s is Kubernetes, packaged small. It's a certified distribution in one binary, with an ingress controller, a load balancer and local storage included, so it's the cheapest way to get real Kubernetes on servers you rent. It doesn't remove Kubernetes' upgrades, manifests or concepts. If those are what you're trying to avoid, K3s doesn't help.

The numbers: a server node needs 2 cores and 2 GB, an agent 1 core and 512 MB (K3s requirements). High availability with embedded etcd needs "three or more server nodes", an odd number (K3s HA docs). On three $7 servers that's about $21 a month. Your team still owns certificates, backups and an upgrade every few months, the same as on upstream Kubernetes.

Pick K3s if your team already knows Kubernetes, or wants Helm charts and operators that only exist for Kubernetes.

What about Kamal?

Kamal is 37signals' MIT-licensed deploy tool: you list server IPs in a config file, and it builds your image and deploys it over SSH with zero downtime, using its own kamal-proxy on each server. There's no cluster and no scheduler. It's a good fit for one to a few servers, but traffic across several servers needs a load balancer you provide.

The Kamal README describes it as "deploy web apps anywhere with zero downtime", with kamal-proxy switching requests between the old and new containers. The proxy "runs on ports 80 and 443 and forwards requests to the application container" on its own server. Its automatic Let's Encrypt certificates require "that we are deploying to one server"; with more web servers, you bring your own certificates (Kamal proxy docs) and put a load balancer or DNS in front.

Are managed container services a good Kubernetes alternative?

Yes, if you'd rather pay per second than look after servers. Fly.io, Google Cloud Run and AWS ECS on Fargate run your container images with no cluster to manage, and Cloud Run and Fargate can autoscale. The trade is price at steady load: three always-on apps cost $11 on Fly.io, $43 on Fargate and around $145 on Cloud Run.

  • Fly.io is the cheapest of the three for small always-on Machines, $2.19 a month for 256 MB in Ashburn (Fly.io pricing). Volumes are $0.15 per GB-month (Fly.io docs).
  • ECS itself is free: "There is no additional charge for Amazon ECS orchestration" (ECS pricing). You pay for Fargate or EC2, plus the load balancer, which on a small setup can cost more than the tasks.
  • Cloud Run shines on request-based billing for spiky traffic, where idle time costs nothing. Keep instances warm all month and it's the most expensive option in this list.

If you're moving off a PaaS, I compared those in Vercel alternatives and priced Render and Railway separately.

Can a self-hosted PaaS replace Kubernetes?

For most small teams, yes. A self-hosted PaaS gives you git push deploys, HTTPS and one-click databases on a server you rent, with no Kubernetes. Coolify, Dokploy and Dokku are the best known. They differ most on more than one server: Dokku is single-server by default, Dokploy uses Swarm, and Coolify deploys copies but leaves load balancing to you.

ToolOne serverMore than one serverSource
DokkuDefault docker-local schedulerOptional k3s or Nomad schedulersDokku schedulers
DokployYesDocker Swarm, with Traefik routing to chosen serversDokploy cluster docs
CoolifyYesSame app on several servers; "configure a cloud load balancer or another external traffic layer in front"; apps with persistent storage can't go multi-serverCoolify multiple servers
PloyzYesWireGuard network between servers, a Caddy load balancer on every server, up to 50 replicas per serviceThis blog's author builds it

I build Ployz, so take this row with that in mind. I wanted a self-hosting platform with no Kubernetes, no control plane to babysit and no three-server minimum, but not stuck on one server either. You add a server with one command, it joins an encrypted WireGuard network, services reach each other by private DNS name, and every server runs its own Caddy load balancer, so there's no load balancer to rent. A service can run up to 50 replicas across your servers.

What Ployz doesn't do, so you can compare it fairly with Swarm and K3s:

  • No automatic failover. If a server dies, replicas on your other servers keep serving, but nothing moves by itself: you redeploy what ran only there, and a database on it is down until it's back (the steps). Swarm and K3s reschedule work onto healthy nodes.
  • No autoscaling. You pick the replica count.
  • No backups. Its one-click Postgres, Redis, MySQL and MongoDB are regular services with a volume. Back them up yourself. Moving a database to another server is coming, not shipped.

If you need automatic failover on servers you rent today, use Swarm or K3s with three nodes.

Kubernetes alternative or Kubernetes?

Pick Kubernetes (K3s or managed) if your team already knows it, you need Helm charts or operators, or you need autoscaling and failover on your own servers and have someone who'll own the upgrades.

Pick Docker Swarm if you want automatic failover on three rented servers with Compose files you already have, and can live with a smaller ecosystem.

Pick Nomad if you run mixed workloads, have three or more people to own it, and the BSL is fine for you.

Pick Cloud Run, Fargate or Fly.io if your traffic is spiky, you want autoscaling, or you don't want to patch servers. Expect to pay more at steady load.

Pick your own server if you run a few apps with steady traffic. One $7 server with Docker Compose or a self-hosted PaaS covers most small teams, and a second server is cheaper than any cluster minimum.

Ployz runs those servers for you: push to GitHub, it builds and deploys with zero downtime across your servers, and it's free on your own servers.

Run the same app on a server you rent. Ployz is free on your own servers.

Deploy your app