[email protected]

Basics · Kubernetes

kube-hetzner, hetzner-k3s or Talos: Provisioning Kubernetes on Hetzner

Editorial note: Versions, commands and prices may change. Please verify critical steps independently before production use. This guide does not replace individual professional, legal or tax advice.

Build a Kubernetes cluster on Hetzner or have it taken over? WZ-IT chooses the provisioning path to fit team and workloads, builds the cluster on Hetzner Cloud or dedicated servers and operates it on request. See Kubernetes on Hetzner

Provisioning a Kubernetes cluster on Hetzner runs through four documented paths: the Terraform/OpenTofu module kube-hetzner, the CLI hetzner-k3s, Talos Linux (with talosctl or the community module hcloud-talos) and, for dedicated servers, the Cluster API Provider Hetzner. This comparison relies exclusively on the projects' repositories, releases, licence files and documentation, retrieved on 28 October 2026. As of October 2026. Assessments that are not evidence are labelled as such.

Contents

What all paths have in common

All paths connect Kubernetes to the platform through the same two Hetzner components. The Cloud Controller Manager (CCM, Apache-2.0, v1.39.2 from 22 October 2026) connects the Hetzner Cloud and Robot APIs and creates load balancers for services of type LoadBalancer. The CSI driver (MIT, v2.24.1 from 22 October 2026) provides Cloud Volumes as ReadWriteOnce volumes. Both projects build images for amd64 and arm64 (CCM, CSI). The Cluster API Provider Hetzner can use both components as well; for bare metal its documentation currently recommends the Syself CCM fork instead of the Hetzner CCM until an upstream release contains the fix for the Robot name lookup. Three properties apply regardless of the tool:

  • Storage on Robot servers: the CSI driver does not work there. Dedicated workers need their own storage, for example Longhorn or Rook-Ceph (comparison). The CCM does not support routes for Robot servers; the CNI handles the pod networks.
  • Kubernetes versions: according to its version policy, the CCM supports the three newest Kubernetes versions. For Kubernetes 1.34 to 1.37 the latest CCM version applies, for 1.33 version v1.37.0.
  • Add-on versions: the tool decides which version runs in the cluster. kube-hetzner v3.2.1 sets CCM 1.33.0 and CSI 2.21.2 as defaults (source code, retrieved on 28 October 2026). The hetzner-k3s configuration reference names the same versions as manifest URLs. Older versions can lose functionality: CCM up to v1.30.0 no longer sets zone and region labels on newly initialised nodes since 1 July 2026 (note in the README).

Project status compared

kube-hetzner hetzner-k3s Talos Linux
Type Terraform/OpenTofu module CLI with YAML file Operating system with talosctl; on Hetzner via CLI or the community module hcloud-talos
Licence MIT MIT MPL-2.0; hcloud-talos: MIT
Current release v3.2.1 (9 Sep 2026) v2.7.0 (25 Oct 2026) v1.14.5 (26 Oct 2026); hcloud-talos v4.1.4 (26 Oct 2026)
Recent releases v3.0.0 (6 Jul), v3.1.0 (8 Aug), v3.2.0 (31 Aug 2026) v2.5.0 (7 May), v2.6.0 (24 Jun 2026) v1.14.0 (3 Sep), v1.14.2 (29 Sep 2026)
Maintenance Open-source project, not affiliated with Hetzner maintained by one developer according to the README Sidero Labs, optional commercial support; Hetzner is a tier 3 platform
Distribution k3s or RKE2 k3s Upstream Kubernetes (1.33 to 1.37 with Talos 1.14)
Node operating system openSUSE Leap Micro (MicroOS for existing clusters) Ubuntu 24.04, other images by ID Talos Linux without SSH and shell
Prerequisites OpenTofu or Terraform, Packer, kubectl, hcloud the CLI, Hetzner token, SSH key talosctl, image, endpoint for the Kubernetes API (for example a load balancer)

Sources: kube-hetzner README and releases, hetzner-k3s releases, Talos releases and support matrix, hcloud-talos README.

Operations: upgrades, rollback and backup

kube-hetzner hetzner-k3s Talos Linux
Kubernetes upgrade system-upgrade-controller, automatic or controlled by node label hetzner-k3s upgrade, then check the jobs and run create again (docs) talosctl upgrade-k8s, beforehand with --dry-run (docs)
Operating system update transactional, reboots through Kured drain, update, reboot; Kured optional talosctl upgrade with a new image
Operating system rollback BTRFS rollback of the transactional system not described in the docs A/B image, fallback on boot failure, manually with talosctl rollback (docs)
Changes to the cluster tofu plan and apply; major jump with a migration guide change the YAML, run create again apply or patch the machine configuration
etcd backup S3 snapshots through etcd_s3_backup (docs) snapshot schedule, optional S3 talosctl etcd snapshot, set up the schedule yourself (docs)
State Terraform/OpenTofu state YAML file, no Terraform state according to the docs machine configuration and secrets; with hcloud-talos in the state

Two details from the documentation affect day-to-day work. With hetzner-k3s the create command is explicitly required after an upgrade so that new nodes are created with the new k3s version right away. With Talos 1.14 the installer image is no longer published as ghcr.io/siderolabs/installer but delivered through the Image Factory as factory.talos.dev/metal-installer/<schematic-id>:<version>; upgrade scripts with the old path need to be adjusted.

Platforms: ARM64 and dedicated servers

kube-hetzner hetzner-k3s Talos Linux
ARM64 (CAX) x86 and ARM can be mixed (support matrix) ARM pools through image ID amd64 and arm64; one image per architecture
Dedicated servers Robot servers as additional agents over a vSwitch (docs), rated Advanced/special-case (support matrix) external worker pools with provider: robot, since v2.6.0; private network since v2.7.0; Debian or Ubuntu (docs) platform Metal (tier 1) through ISO or PXE; the Hetzner guide describes only the cloud
Control plane Hetzner Cloud Hetzner Cloud Cloud or Metal
CCM and CSI in the module, fixed default versions in the tool, changeable through manifest_url install yourself

For Talos on Hetzner Cloud, Hetzner has provided a public ISO since 23 April 2025, updated on a best-effort basis. Custom images are created in rescue mode, with Packer or with hcloud-upload-image. The community module hcloud-talos points out that some Hetzner ISOs have started Talos in metal mode instead of hcloud, which produces wrong provider IDs and broken CCM routes (issue 417); it recommends custom snapshots.

For pure bare-metal clusters the Cluster API Provider Hetzner (CAPH, Apache-2.0, v1.1.10 from 22 October 2026) is the fourth path. It manages cloud and bare metal, requires a management cluster and is based on kubeadm; the node images need a container runtime, kubelet and kubeadm. The project is maintained by Syself and the community, not by Hetzner. According to the documentation, the bundled bare-metal flavors are for demonstration only and not for production. For production, the tutorial in the Hetzner Community (author: Syself) recommends a custom configuration with load balancing, fault tolerance, network security and hardening.

The paths in detail

kube-hetzner describes the cluster as a module in the infrastructure code: control plane and agent pools, private network, firewall, load balancer and add-ons. The module works with OpenTofu and Terraform; how the two differ is covered in the guide Migrate Terraform to OpenTofu. State and module versions need attention: the move from v2 to v3 has its own guide that has you review every planned destroy or replace before the apply. The support matrix lists k3s on Leap Micro as the stable default and RKE2 as a supported variant.

hetzner-k3s creates servers, firewall and private network, installs k3s and sets up the CCM, CSI, System Upgrade Controller and Cluster Autoscaler. Everything is in one YAML file. Four months lie between v2.6.0 (24 June 2026) and v2.7.0 (25 October 2026), and according to the README the project is maintained by one developer. Anyone operating clusters with the CLI should factor this dependency into the assessment.

Talos removes SSH and shell; every change goes through the API. On Hetzner Cloud the team sets up the image, API endpoint (load balancer), CCM and CSI itself, or uses the community module hcloud-talos, which provides networking, Cilium, CCM and the Talos CCM. The module names its limits: changes to user_data and image are not applied to existing nodes, Kubernetes upgrades run through talosctl upgrade-k8s, and the supported Talos versions are tied to Kubernetes ranges (Talos 1.14.3 and newer with Kubernetes 1.32 to 1.37). For Talos itself see What is Talos Linux? and the comparison k3s vs. RKE2 vs. Talos; automation with OpenTofu on Proxmox is shown in Automate Talos on Proxmox with OpenTofu.

Which path fits which team

The following table is an assessment by WZ-IT. The "Evidence" column names the documentation basis.

Starting point Obvious path Evidence
IaC routine with Terraform or OpenTofu, several environments from code kube-hetzner module in the state, Kured and System Upgrade Controller, OS rollback
One or a few clusters, no IaC stack, Ubuntu preferred hetzner-k3s one YAML file, no Terraform state; no OS rollback described
No SSH on nodes, API-driven configuration, A/B rollback Talos Hetzner tier 3, install CCM and CSI yourself, talosctl routine required
Dedicated servers as workers next to a cloud control plane hetzner-k3s or kube-hetzner Robot pools or vSwitch guide; CSI does not work there
Cluster made of dedicated servers, declarative management Cluster API Provider Hetzner management cluster required, flavors are demo only
Small team without capacity for upgrades and backups operations by a third party with every path, restore tests, monitoring and add-on maintenance remain with the operator

Six questions need answers before the decision:

  1. Who runs the next Kubernetes upgrade, and with which command?
  2. Who updates the CCM and CSI, and when?
  3. Where is the etcd snapshot stored, and when was it last restored? (Backup and restore)
  4. Are control planes spread across several locations?
  5. Which sources may reach the Kubernetes API, SSH or the Talos API?
  6. Do workers need dedicated servers, and which storage carries the volumes there?

Status and methodology

The tables show the state as of 28 October 2026. Release dates come from the projects' GitHub releases, licences from the LICENSE files, functions from the README and documentation in the respective repository. Nothing was measured: no speed, no cost, no stability. Where the documentation does not describe a point, the table says "not described", not "not possible". The table on team size is an assessment. Version numbers and ratings change; the article gives the source for every figure.

Sources, retrieved on 28 October 2026:

Our approach at WZ-IT

We first clarify workloads, failure targets, team and the existing infrastructure pipeline, then the path. The cluster is built on your Hetzner resources: Cloud, dedicated or both, with private access to the API, GitOps and tested backups. Operating an existing or new cluster is available as Managed Kubernetes from €590 per cluster per month net, including 3 worker nodes (as of October 2026); each additional worker node costs €129.90. Monitoring runs 24/7, and the response to P1 incidents follows the service level. A cluster that is already running can be reviewed before the takeover with the cluster audit; the procedure is described in the audit checklist. The overview of architecture, networking and storage on Hetzner is in Kubernetes on Hetzner.

Build a cluster on Hetzner or have operations taken over? WZ-IT plans cloud, dedicated and hybrid clusters and operates them by service level. Kubernetes on Hetzner · Managed Kubernetes

Rather have it operated?

You'd rather not run Kubernetes yourself? WZ-IT handles setup, operations and maintenance - privacy-focused from Germany.

Enquiry

Design, take over, or operate Kubernetes

We design and operate Kubernetes on bare metal, Proxmox, and European cloud platforms, including networking, GitOps, observability, and backups.

  • Straight with Timo and Robin - no sales team, no pitch
  • A professional assessment of your situation
  • Concrete next steps for infrastructure, software or AI

The conversation is free and non-binding.

WZ-IT supported us professionally with the provisioning and setup of NetBird. Alongside the technical implementation, we also received well-founded advice on connecting our Kubernetes clusters. The recommendations were concrete and directly actionable. The collaboration was consistently reliable, fast and on equal terms. We can recommend WZ-IT without reservation.
Kai ClaußHead of Development, SweetConnect GmbH
Timo and Robin, founders of WZ-IT

Design, take over, or operate Kubernetes

WZ-IT supported us professionally with the provisioning and setup of NetBird. Alongside the technical implementation, we also received well-founded advice on connecting our Kubernetes clusters. The recommendations were concrete and directly actionable. The collaboration was consistently reliable, fast and on equal terms. We can recommend WZ-IT without reservation.
Kai ClaußHead of Development, SweetConnect GmbH

Frequently Asked Questions

Answers to the most important questions

Knowledge

More on Kubernetes

Companies worldwide trust WZ-IT

  • Stadtwerke Brühl
  • DGHO e.V.
  • solarwerkstatt berlin
  • Krüger Dirndl
  • ABCO Water Systems
  • Golem.de
  • EVADXB
  • nextGYM
  • AInergy
  • ml&s
  • Odiseo Solutions
  • Annota
  • ARGE
  • SweetConnect GmbH
  • Aphy AG
  • CORGOS
  • Rekorder
  • SolidProof
  • Yonju
  • Keymate
  • Paritel
  • Mr. Clipart
  • Millenium
  • Negosh
  • Führerscheinmacher
  • BTI
  • Deutsche Gesellschaft für Datenschutz
Read client reviews