The easiest and fastest way to create production-ready Kubernetes clusters. No Terraform to learn, no management cluster required. The tool is free — you only pay for Hetzner infrastructure.
2-3 min HA Cluster Setup
500 nodes In Under 11 Minutes
80% Savings vs AWS/GCP
An independent open source project, not affiliated with Hetzner Online GmbH.
$ hetzner-k3s create --config cluster.yaml
✓ Creating network...
✓ Creating firewall...
✓ Creating masters (3 nodes)...
✓ Creating workers (3 nodes)...
✓ Installing k3s...
✓ Installing Hetzner CCM & CSI...
✓ Cluster ready in 2m 34s
$ kubectl get nodes
NAME STATUS ROLES AGE master-1 Ready control-plane,master 2m master-2 Ready control-plane,master 2m master-3 Ready control-plane,master 2m worker-1 Ready <none> 1m worker-2 Ready <none> 1m worker-3 Ready <none> 1m
Why Choose hetzner-k3s?
Purpose-built for Hetzner Cloud. No compromises.
Speed That Sets Records
Create a 3-node HA cluster in just 2-3 minutes. We've tested 500-node clusters in under 11 minutes — possibly a world record for Kubernetes provisioning.
- Parallel node provisioning
- Optimised for Hetzner's API
- No waiting for Terraform plans
Simplicity Without Compromise
One CLI tool, one YAML config file. No Terraform, Packer, Ansible, or existing Kubernetes cluster required. Batteries included.
- Human-readable configuration
- Version-controllable setup
- All essentials pre-installed
Complete Control, Zero Lock-in
Your credentials stay on your machine. No third-party accounts, no platform fees, no one else can see your clusters or workloads.
- API token never leaves your machine
- No recurring platform fees
- Full access to your infrastructure
Save Up to 80% vs Other Cloud Providers
hetzner-k3s is free — you only pay for Hetzner Cloud infrastructure, which offers unbeatable value
$ 158 /month
Infrastructure only — 3 masters + 10 workers
- hetzner-k3s is 100% free
- Pay only for Hetzner servers
- No management platform fees
- Traffic & DDoS protection included
- Full infrastructure control
$ 1595+ /month
Same cluster size, different cloud
- $73/month control plane fee
- ~$1440/month for 10 EC2 instances
- ~$81/month for Network Load Balancer
- + data transfer, EBS
- Complex pricing model
$ 368+ /month
Same infrastructure + platform fees
- Per-vCPU management fees
- Control plane fee (Pro tier)
- Third-party account required
- API token shared with platform
Real Infrastructure Costs (December 2025)
| Cluster Type | Configuration | Monthly Cost |
|---|---|---|
| Development | 1 master (CX23), 2 workers (CX23) | ~$19/month |
| Small Production | 3 masters (CPX22), 3 workers (CPX32) | ~$68/month |
| Medium Production | 3 masters (CPX22), 10 workers (CPX32) | ~$158/month |
| Large Production | 3 masters (CPX42), 50 workers (CPX32) | ~$615/month |
* Costs shown are for Hetzner Cloud infrastructure only. hetzner-k3s is completely free. Includes load balancer (~€5.50/month).
Everything You Need for Production
Batteries included. No assembly required.
High Availability
Deploy masters and worker pools across multiple Hetzner locations for regional resilience.
Autoscaling
Define min/max instances per node pool. The Cluster Autoscaler handles scaling based on demand.
Multiple Node Pools
Mix x86 and ARM instances at various performance levels. Cost-effective ARM (CAX) instances available.
Private Networking
All cluster communication happens over Hetzner's private network by default. Secure and fast.
CNI Options
Choose Flannel for simplicity or Cilium for advanced networking features like network policies.
Large Cluster Support
Tested with 500 nodes and designed to scale beyond. Production-proven architecture.
Zero-Downtime Upgrades
System Upgrade Controller enables seamless k3s upgrades without service interruption.
Production Components
Hetzner CCM, CSI driver, and Cluster Autoscaler installed automatically. Ready to deploy.
What Gets Installed
A complete, production-ready stack out of the box
k3s
Lightweight, certified Kubernetes distribution by Rancher. Lower resource footprint, single binary, production-ready.
Hetzner Cloud Controller Manager
Automatic load balancer provisioning and node lifecycle management integrated with Hetzner Cloud.
Hetzner CSI Driver
Persistent volumes via Hetzner block storage. Dynamic provisioning for your stateful workloads.
System Upgrade Controller
Automated, zero-downtime k3s upgrades. Keep your cluster up-to-date with minimal effort.
Cluster Autoscaler
Automatic node scaling based on demand. Scale up when pods are pending, scale down when resources are idle.
Private Network & Firewall
All integrated with Hetzner's private networking and firewall. Secure by default.
Who Uses hetzner-k3s?
Trusted by teams who value simplicity and efficiency
Startups
Running cost-efficient production workloads without breaking the bank on cloud infrastructure.
Development Teams
Spinning up ephemeral test clusters in minutes, tearing them down when done. Fast iteration cycles.
Agencies & Consultants
Deploying client infrastructure quickly with a reproducible, version-controlled setup.
Regulated Industries
Companies requiring data sovereignty with EU-based data centres and full infrastructure control.
Platform Engineers
Who want simplicity without sacrificing control. No magic, just straightforward infrastructure.
Cost-Conscious Teams
Saving up to 80% compared to major cloud providers while maintaining production quality.
Get Started in Minutes
From zero to production cluster with just a few commands
1. Install hetzner-k3s
brew install vitobotta/tap/hetzner_k3s
wget https://github.com/vitobotta/hetzner-k3s/releases/latest/download/hetzner-k3s-linux-amd64
chmod +x hetzner-k3s-linux-amd64
sudo mv hetzner-k3s-linux-amd64 /usr/local/bin/hetzner-k3s
2. Create your configuration
hetzner_token: <your-token>
cluster_name: my-cluster
kubeconfig_path: "./kubeconfig"
k3s_version: v1.32.0+k3s1
networking:
ssh:
port: 22
use_agent: false
public_key_path: "~/.ssh/id_ed25519.pub"
private_key_path: "~/.ssh/id_ed25519"
allowed_networks:
ssh:
- 0.0.0.0/0
api:
- 0.0.0.0/0
masters_pool:
instance_type: cpx22
instance_count: 1
locations:
- fsn1 # See documentation for the list of available locations
worker_node_pools:
- name: static
instance_type: cpx32
instance_count: 2
location: fsn1 # See documentation for the list of available locations
- name: autoscaled
instance_type: cpx32
location: fsn1
autoscaling:
enabled: true
min_instances: 0
max_instances: 2
3. Create your cluster
hetzner-k3s create --config cluster.yaml
Your cluster will be ready in 2-3 minutes. The kubeconfig is saved automatically.
4. Start using your cluster
export KUBECONFIG=./kubeconfig
kubectl get nodes
No Terraform. No Packer. No Ansible. No management cluster. No third-party account.
100% Free & Open Source
hetzner-k3s is released under the MIT License. Use it freely for personal projects, startups, or enterprise deployments. No hidden fees, no premium tiers, no limitations.
Inspect the code, modify it, contribute back — it's truly open.
View on GitHubProfessional Support Available
Need help with your Kubernetes setup? Want custom features or enterprise support? Professional consultancy services are available for teams who need expert guidance.
- Cluster architecture review
- Production deployment assistance
- Custom feature development
- Training and workshops