• 2 min read
Run Kubernetes on Hetzner for €47.95 a Month
A Terraform project aims to make self-hosted K3s on Hetzner Cloud easier, with a six-node highly available cluster costing €47.95/mo pre-VAT.

Image: Hacker News
Self-hosting Kubernetes usually means trading convenience for control. A project called terraform-hcloud-kube-hetzner tries to soften that tradeoff by packaging a production-ready K3s deployment on Hetzner Cloud into an open-source Terraform setup.
The appeal is straightforward: Hetzner, the German infrastructure provider, offers lower-cost cloud infrastructure than the big hyperscalers, with support for private networking, load balancers, block storage, and virtual machines. For teams concerned about data sovereignty, its European footprint is part of the pitch.
At the center of the stack is K3s, Rancher’s lightweight Kubernetes distribution, paired with openSUSE MicroOS for the node operating system. The combination is designed to reduce operational overhead while keeping the cluster resilient. The module also wires in Hetzner-native integrations including the hcloud CSI driver and hcloud Cloud Controller Manager, so Kubernetes can provision load balancers and storage directly.
For the example deployment, the blog uses a highly available six-node cluster spread across Falkenstein, Nuremberg and Helsinki:
- 3 control plane nodes
- 3 worker nodes
- 2 load balancers for the API server and ingress traffic
- Private, encrypted networking between nodes
The chosen instance mix is:

Recommended reading
South Africa mining automation may widen inequality
- CX23 control plane nodes: 2 virtual cores / 4GB ram / 40GB disk @ €3,49/mo
- CX33 worker nodes: 4 virtual cores / GB ram / 80GB disk @ €5,49/mo
That puts the six machines at €26,97 a month. Add two lb11 load balancers for €5.39/mo and six public IPv4 addresses at €1,70/mo each, and the total reaches €47,95/mo pre-VAT or €58,03/mo with VAT.
The post argues that this compares favorably with managed Kubernetes pricing, saying a typical managed cluster starts at $70-$75/mo on GCP GKE or AWS EKS before workload costs.
Ways to cut the cost
The blog outlines two main ways to push the bill down further:
- Use one load balancer or MetalLB instead of separate balancers for API and ingress traffic, saving €5.39/mo and reducing the total to €52.64/mo with VAT.
- Remove public IP addresses and rely on private networking via a bastion host, NAT gateway, WireGuard, or Tailscale/Nebula, cutting €10.20/mo in IPv4 costs.
Deployment itself is handled through the usual Terraform flow: terraform init -upgrade, terraform plan, and terraform apply -auto-approve. The author says the apply process can take up to 10 minutes.
Backups and upgrades
For backups, the setup uses K3s' built-in etcd snapshots and can send cluster state to an external S3-compatible storage provider. Node backups rely on Hetzner’s built-in backup mechanism.
Upgrades are managed with Rancher’s System Upgrade Controller (SUC), which handles rollout order, concurrency, and cordon-and-drain behavior declaratively inside Kubernetes. The project also deploys kured, the Kubernetes Reboot Daemon, to coordinate reboots when the OS requires them, including maintenance windows and day-based reboot rules.
The starter project is available at github.com/qstarsit/hcloud-kube-hetzner.
Enterprise Editor
Marcus follows the money. He covers enterprise software, cloud architecture, and the tectonic shifts in Big Tech strategy. He translates dense earnings calls and complex M&A activity into actionable insights about where the industry is actually heading. If a tech giant makes a silent pivot, Marcus is usually the first to notice.
via Hacker News


