You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Monthly cost of the reference dev cluster on every provider and Kubernetes
flavour in this repo, plus each provider's plan menu so you can re-size.
Method & caveats
Reference dev cluster = 1 control-plane-equivalent (~4 vCPU / 8 GB) + 3
workers (~4 vCPU / 16 GB, the tested mip-infra shape) + ~240 GB data storage
public IPs. 3 workers because Argo CD redis-ha needs 3 schedulable nodes.
UpCloud figures are exact, computed from the live price API
(GET /1.3/price, zone fi-hel2): credits/hr × €0.01 × 730 h.
Exoscale & Hetzner figures are estimates from vendor pricing pages
(mid-2026) — these stacks are not live-tested. Flagged ⚠️ where a specific
number was uncertain at research time.
VAT: UpCloud/Exoscale quoted incl. the listed currency basis; Hetzner
is EXCL. VAT — add 19% for VAT-liable EU billing.
Billing model matters more than sticker price (see notes): UpCloud Cloud
Native and all hourly plans stop billing compute when powered off; Hetzner
bills stopped-but-not-deleted servers; managed control planes have free dev
tiers.
OpenShift: no cost row — it's a stub (managed ROSA/ARO or self-hosted OKD
would be priced when implemented).
Reference dev cluster — totals (24/7, EUR/month)
Provider × option
Control plane
3× workers
Storage
IPs/other
Total 24/7
Tested
Lima (local) self-managed RKE2 (your workstation)
0.00
0.00
0.00
0.00
€0 — needs ≥ 4 free vCPU / ~16 GiB RAM for the default shape
✅
Hetzner self-managed RKE2 (cx33 + 3× cx43)
8.49
47.97
13.73
2.40
≈ 72.6⚠️ excl VAT
⚠️
Hetzner self-managed, ARM (cax21 + 3× cax31)
10.49
62.97
13.73
2.40
≈ 89.6⚠️ excl VAT
⚠️
UpCloud UKS managed (free dev CP + 3× 4xCPU-8GB)
0.00
195.54
incl
3.51
≈ 199
✅
UpCloud self-managed RKE2 (CN-4x8 + 3× CN-4x16)
34.76
221.61
52.36
14.04
≈ 323
✅
Exoscale SKS managed (free starter CP + 3× extra-large)
Same cluster, dev usage with power-off (~176 h/mo ≈ 8 h × 22 workdays),
where the billing model allows it:
Provider × option
Total (dev usage)
Why
UpCloud self-managed RKE2
≈ 128
Cloud Native compute billed only while on; storage + IPv4 bill 24/7. make down overnight.
UpCloud UKS
≈ 150–200
scale node group to 0 to save (deletes/recreates nodes); free CP already
Hetzner self-managed
≈ 73 (no saving)
Hetzner bills stopped servers; delete to save. Already cheapest 24/7.
Exoscale (either)
≈ 410–500 (little saving)
premium instance pricing dominates
Ranking for a dev cluster: Hetzner self-managed is ~4× cheaper than
UpCloud self-managed and ~7× cheaper than Exoscale, and its "workers" are
actually 8 vCPU. UpCloud wins on the power-off workflow (clean stop/resume
with preserved IPs) and is the tested, production-faithful option. UKS
(free control plane) roughly halves UpCloud self-managed at 24/7. Exoscale is
the premium option (Swiss data residency is its selling point).
Hetzner has no managed Kubernetes — its only options are self-managed
(our hetzner-rke2, or the kube-hetzner module). No managed row exists.
Free managed control planes (UpCloud UKS dev, Exoscale SKS starter) make
managed cheaper than self-managed on the same cloud for dev, because you
drop a whole control-plane node and its storage. The trade-off is the
fidelity gap documented in why-self-managed.md
(Cilium, no RKE2, managed-LB vs MetalLB).
The power-off workflow only pays off on UpCloud in this repo — it's why
the tested stack uses Cloud Native plans. Elsewhere, delete-and-recreate is
the cost lever.
Storage inclusion differs: UpCloud Cloud Native plans include no
disk (you add block storage — hence the storage column); general/UKS plans
and Hetzner/Exoscale instances include a root disk, so only the extra
Longhorn/data volume is charged.
All estimates should be re-checked on the vendor calculators before
budgeting: UpCloud ·
Exoscale ·
Hetzner (and apply VAT).