Running k3s, kube-hetzner, Terraform, Cluster API, or Talos on Hetzner? Keep your Hetzner account and servers, and let Cloudfleet run the control plane, upgrades, load balancers, and node scaling as a managed service, with a 99.95% SLA and our engineers on call instead of yours. Start with €200 in credit.
| Features |
kubeadm |
k3s / kube-hetzner |
Cluster API (CAPH) |
Talos Linux |
kOps |
|
|---|---|---|---|---|---|---|
SLA and on-call |
No SLA, your team is on call |
No SLA, your team is on call |
No SLA, your team is on call |
No SLA, your team is on call |
No SLA, your team is on call |
99.95% SLA on Pro, 99.99% on Enterprise, Cloudfleet engineers on call |
Control plane |
You run the servers and etcd |
You run the k3s servers |
You run a management cluster and every control plane |
You run the control plane nodes |
You run the control plane nodes |
Managed, 99.95% SLA on Pro |
Kubernetes upgrades |
Manual, node by node |
System Upgrade Controller you configure and watch |
Rolling upgrades with new machine images you build |
talosctl upgrades you run |
kops upgrade and rolling-update you run |
Automated, with release channels on Pro |
Node scaling |
Cluster Autoscaler, if you add it |
Cluster Autoscaler with node pools sized in advance |
Cluster Autoscaler, if you add it |
Cluster Autoscaler, if you add it |
Cluster Autoscaler not supported on Hetzner |
Node auto-provisioning picks the Hetzner server type per workload |
Load balancers and volumes |
You install and update the Hetzner CCM and CSI driver |
CCM and CSI bundled, you keep them updated |
You install and update the Hetzner CCM and CSI driver |
You install and update the Hetzner CCM and CSI driver |
You keep the Hetzner integrations updated |
Hetzner Load Balancers and Volumes set up for you |
Hetzner Dedicated servers |
Manual join |
Hetzner Cloud only |
Supported, with images you maintain |
Manual installation |
Hetzner Cloud only |
Join the same cluster with one command or Terraform |
What you keep in sync |
kubeadm configs and certificates |
Terraform state or cluster YAML, plus node images |
Management cluster and CAPI versions |
Machine configs, talosconfig, and image snapshots |
S3 state store |
Nothing required, Terraform optional |
Cost |
Hetzner servers plus your team’s time | Hetzner servers plus your team’s time | Hetzner servers plus your team’s time | Hetzner servers plus your team’s time | Hetzner servers plus your team’s time | Hetzner servers plus a plan from €12/month |
CNCF-conformant Kubernetes with no control plane servers in your Hetzner project.
Hetzner Cloud servers created and removed as your workloads need them.
Dedicated servers join as self-managed nodes next to your cloud servers.
Encrypted overlay across regions, and Hetzner Load Balancers created for your Services.
You keep your Hetzner account, and Hetzner bills you for servers, volumes, and load balancers directly, at Hetzner’s prices. Cloudfleet charges a flat monthly fee per cluster that includes a set number of vCPUs, plus a per-vCPU rate above that. There are no cluster size limits, and every new account starts with €200 in credit, valid for 30 days.
See all plans8 vCPUs included, then €2.45 per vCPU per month. For development, staging, and side projects. A 16 vCPU cluster costs about €32 a month.
24 vCPUs included, then €4.95 per vCPU per month. Multi-zone control plane with a 99.95% SLA, release channels, and an 8-hour support response time. A 48 vCPU cluster costs about €188 a month.
Every new account starts with €200 in credit, enough to run a real cluster on your Hetzner servers and move a workload over before you pay anything.
Billing is prorated by the minute, with a detailed breakdown per cluster at the end of the month. Scale down and the fee scales down with it.
Define the cluster and its Hetzner Fleet with the Cloudfleet Terraform provider. No server modules, cloud-init, or node images to maintain.
Join a Hetzner Dedicated server to the same cluster as a self-managed node, with labels for scheduling.
resource "cloudfleet_cfke_cluster" "production" {
name = "production"
region = "europe-central-1a"
tier = "pro"
}
resource "cloudfleet_cfke_fleet" "hetzner" {
cluster_id = cloudfleet_cfke_cluster.production.id
name = "hetzner"
limits {
cpu = 64
}
hetzner {
api_key = var.hetzner_api_key
}
}
resource "cloudfleet_cfke_self_managed_node" "dedicated" {
cluster_id = cloudfleet_cfke_cluster.production.id
region = "nbg1"
zone = "nbg1-dc3"
node_labels = {
"server-type" = "dedicated"
}
ssh {
host = "203.0.113.42"
user = "root"
private_key_path = "~/.ssh/hetzner-dedicated"
}
}
Define the cluster and its Hetzner Fleet with the Cloudfleet Terraform provider. No server modules, cloud-init, or node images to maintain.
Join a Hetzner Dedicated server to the same cluster as a self-managed node, with labels for scheduling.
Self-managed tools make the first cluster easy. The work comes after: every upgrade, every new node pool, every Hetzner integration release, and every night someone has to fix the control plane. With Cloudfleet, these jobs move off your team’s list, and Cloudfleet’s engineers are on call for them.
No k3s servers, control plane nodes, or management cluster in your Hetzner project. Cloudfleet runs the control plane, backs up its data, and its engineers are on call to keep it available. Pro clusters run across zones with a 99.95% monthly uptime SLA, and Enterprise clusters with 99.99%.
No System Upgrade Controller plans, talosctl runs, or kops rolling updates. Cloudfleet upgrades Kubernetes for you, and Pro adds release channels to choose the pace.
Hetzner Load Balancers are created when you create a Service of type LoadBalancer, and Hetzner Volumes are set up for your Pods. No Cloud Controller Manager or CSI driver releases to track.
No server modules, cloud-init templates, Talos snapshots, or machine images to keep current. If you like Terraform, keep it for clusters and Fleets with the Cloudfleet provider.
Node auto-provisioning picks the cheapest Hetzner server type that fits each workload, from shared CX and CPX to dedicated CCX and Ampere CAX, and removes nodes when they are idle.
Nodes in Nuremberg, Falkenstein, Helsinki, Ashburn, Hillsboro, and Singapore join one cluster over an encrypted WireGuard® overlay. No VPNs or private network peering to build.
Cloudfleet runs CNCF-conformant Kubernetes, so the cluster you build on it behaves like the one you run today. Most teams run both side by side and move workloads one namespace at a time. For larger moves, the Migration Acceleration Program offers up to $10,000 in credits and hands-on help from Cloudfleet Kubernetes architects.
Talk to an expertYour Deployments, Helm charts, and GitOps repositories apply unchanged. Point Argo CD, Flux, or your CI pipeline at the new cluster’s kubeconfig.
k3s ships Traefik, ServiceLB, and the local-path provisioner. On Cloudfleet, Hetzner Load Balancers replace ServiceLB, Hetzner Volumes replace local paths, and you keep Traefik or any other ingress controller.
Move volumes with a backup tool such as Velero, or replicate databases to the new cluster and switch over. Cloudfleet Kubernetes architects help plan the cutover.
Drain a Dedicated server from the old cluster, then join it to Cloudfleet as a self-managed node. Cloud servers are replaced by node auto-provisioning, so old node pools simply scale to zero.
Most Hetzner setups mix cheap cloud servers with powerful Dedicated machines. With self-managed tools, they usually end up in separate clusters. Cloudfleet runs them in one.
Shared vCPU CX and CPX, dedicated vCPU CCX, and Ampere ARM CAX servers in all Hetzner Cloud regions, chosen per workload by node auto-provisioning.
Join Dedicated servers with one CLI command or Terraform, including GPU servers, next to your cloud nodes. Workloads choose them with node labels.
Add AWS, Google Cloud, or your own data center to the same cluster for GPUs or services Hetzner does not offer. Hetzner stays your default.
Cloudfleet is headquartered in Berlin. Your workloads and data stay on the Hetzner servers you choose, and cluster metadata stays encrypted in the Frankfurt control plane region.
Cloudfleet seamlessly extends your cluster anywhere, turning any hardware - even in your office or home - into a modern enterprise cluster.
Using Cloudfleet together with Hetzner allowed us to bring up a managed Kubernetes cluster just as quick as with any US-based hyper-scaler, but with the benefit of being EU hosted which is very valuable in today's times.
By combining our standardized configurations with the powerful automation features of the Cloudfleet platform, we've built a development workflow that is fast, secure, and incredibly efficient.
Perfect balance between flexibility and managed service - and the support is outstanding.
We deploy to customer infrastructure without changing how we build or manage Kubernetes.
It is easy to build a multi-cloud setup without getting locked into any single provider.
It is easy to build a multi-cloud setup without vendor lock-in.
Cloudfleet lets us scale our game servers across multiple providers - reliably and affordably.
Cloudfleet not only cut our infrastructure costs - it saved us hours of work by taking cluster management off our plate.
Run Kubernetes consistently across public cloud, private infrastructure, and on-prem environments, with a single control plane and unified operational model.
Operate, scale, and migrate Kubernetes clusters across environments using a consistent, opinionated platform that reduces operational overhead.
Transparent pricing and infrastructure control help you avoid hyperscaler lock-in, hidden fees, and unexpected cost growth as your workloads scale.
Retain full portability of your clusters, workloads, and tooling by running standard Kubernetes without proprietary extensions or forced dependencies.
Designed for production workloads, with operational tooling, escalation paths, and support processes built to meet enterprise reliability requirements.
Secure by default, with isolation, encryption, and access controls designed to meet the requirements of regulated and security-conscious organizations.
Create a managed Kubernetes cluster in minutes. Every new account gets €200 in credit, so you can explore the full platform with no charge until it's used or expires.