hetzner-k3s
The easiest and fastest way to create
production-ready Kubernetes clusters on Hetzner Cloud
❤️ Support This Project
hetzner-k3s is maintained by a single developer. If it saves you time or money, please consider sponsoring its continued development.
What is hetzner-k3s?
hetzner-k3s is a CLI tool that creates fully-configured Kubernetes clusters on Hetzner Cloud in minutes. It uses k3s, a lightweight Kubernetes distribution by Rancher, and automatically configures everything you need for production workloads.
Key Highlights
| Metric | Value |
|---|---|
| Time to create a 6-node HA cluster | 2-3 minutes |
| Tested scale | 500 nodes in under 11 minutes |
| Dependencies | Just the CLI tool |
| Platform fees | None — you only pay Hetzner |
What Gets Installed Automatically
- k3s — lightweight, certified Kubernetes
- Hetzner Cloud Controller Manager — automatic load balancer provisioning
- Hetzner CSI Driver — persistent volumes via Hetzner block storage
- System Upgrade Controller — zero-downtime k3s upgrades
- Cluster Autoscaler — automatic node scaling based on demand
- Private networking and firewall — secure cluster communication
Getting Started
| Installation | Install hetzner-k3s on macOS, Linux, or Windows (via WSL) |
| Create Your First Cluster | Configuration reference and cluster creation |
| Complete Tutorial | Set up a cluster with ingress, TLS, and a sample application |
| Why hetzner-k3s? | Compare to managed services and Terraform-based alternatives |
Why Choose hetzner-k3s?
Speed Without Shortcuts
A 3-master, 3-worker highly available cluster takes just 2-3 minutes to create. This includes provisioning all infrastructure (instances, load balancer, private network, firewall) and deploying k3s with all essential components.
In stress testing, a 500-node cluster (3 masters, 497 workers) was created in under 11 minutes.
Simplicity That Scales
- No Terraform or Packer — a single CLI tool handles everything
- No management cluster — unlike Cluster API or Claudie, you don't need Kubernetes to create Kubernetes
- Simple YAML configuration — human-readable and version-controllable
- Idempotent operations — run
createmultiple times safely; it picks up where it left off
Complete Control
- Your credentials stay local — the Hetzner API token never leaves your machine
- No third-party access — unlike managed services, no external party can access your clusters
- Open source (MIT License) — inspect, modify, and contribute to the code
- No recurring fees — you only pay Hetzner for infrastructure
Production-Ready Defaults
- High availability — distribute masters and workers across locations
- Autoscaling — scale worker pools based on resource demands
- Private networking — cluster traffic stays off the public internet
- Automatic upgrades — the System Upgrade Controller handles rolling updates
Documentation Structure
Getting Started
- Installation — Install hetzner-k3s on your system
- Creating a Cluster — Configuration reference and cluster creation
- Setting Up a Complete Stack — Ingress, TLS, and application deployment
Operations
- Cluster Maintenance — Adding nodes, upgrades, and scaling
- Load Balancers — Configuring Hetzner load balancers
- Storage — Persistent volumes and storage options
- Deleting a Cluster — Clean removal of cluster resources
Advanced Topics
- Recommendations — Best practices for different cluster sizes
- Large Clusters (100+ nodes) — Configuration for large-scale deployments
- Private Clusters — Clusters without public IPs
- Masters in Different Locations — Regional high availability
- Floating IP Egress — Consistent outbound IP addresses
Reference
- Comparison with Other Tools — How hetzner-k3s compares to alternatives
- Troubleshooting — Common issues and solutions
- Upgrading from v1.x to v2.x — Migration guide
- Important Upgrade Notes — Version-specific considerations
Community
- Contributing and Support — How to contribute and get help
Why Hetzner Cloud?
Hetzner Cloud offers exceptional value for Kubernetes workloads:
- Up to 80% lower costs than AWS, Google Cloud, and Azure
- Transparent, all-inclusive pricing — traffic, IPv4/IPv6, DDoS protection, and firewalls included
- Six global locations — Germany (Nuremberg, Falkenstein), Finland (Helsinki), USA (Ashburn, Hillsboro), Singapore
- Flexible instance types — x86 and ARM architectures, including cost-effective ARM instances (CAX) for budget-friendly clusters
- 25+ years of reliability — proven infrastructure trusted by companies worldwide
About the Author
I'm Vito Botta, Lead Platform Architect at Brella, an event management platform based in Finland. I handle infrastructure, coding, and supporting the development team.
I also spend time as a bug bounty hunter, finding and responsibly reporting security vulnerabilities.
Connect with me at vitobotta.com. I'm available for consultancies around hetzner-k3s and Kubernetes on Hetzner.
Why Sponsor?
This project is maintained by a single developer in my spare time. Sponsorship helps me:
- Respond to issues faster
- Ship new features regularly
- Keep the project compatible with new Hetzner Cloud updates
If hetzner-k3s saves you time or money, please consider supporting its development.
Platinum Sponsors
SprintPulse — the retrospective tool teams actually love. Run engaging retros with real-time collaboration, AI-powered insights, and actionable outcomes. Set up in 60 seconds, no training required.
A huge thank you to Alamos GmbH for sponsoring the development of awesome features!
Backers
Also thanks to @deubert-it, @jonasbadstuebner, @ricristian , @QuentinFAIDIDE for their support!
Code of Conduct
Everyone interacting in the hetzner-k3s project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
License
This tool is available as open source under the terms of the MIT License.