Einführung
Die Einrichtung eines Kubernetes-Clusters ist längst nicht mehr der schwierige Teil. Tools wie kubeadm, Managed Services und Ein-Klick-Installationsprogramme haben den Starttag zu einer einfachen Angelegenheit gemacht. Der schwierige Teil ist alles, was danach kommt: Kubernetes-Versionen ohne Ausfallzeiten aktualisieren, ausgefallene Knoten um 2 Uhr morgens ersetzen, Zertifikate vor ihrem Ablauf erneuern, CVEs in der Control Plane und auf den Worker-Knoten beheben. Genau hier verbringen die meisten Teams ihre Zeit – und genau hier lassen die meisten Tools Sie im Stich.
KubeOne ist das Open-Source-Tool von Kubermatic, das den gesamten Lebenszyklus von Kubernetes-Clustern automatisiert: Installation, Upgrades und Reparatur. Es funktioniert auf jeder Infrastruktur, auf der Sie über SSH auf Server zugreifen können – AWS, GCP, Azure, Hetzner, Bare-Metal-Server, Edge-Standorte oder das Server-Rack in Ihrem Keller. Sie beschreiben den gewünschten Zustand Ihres Clusters in einer YAML-Datei, und KubeOne sorgt dafür, dass dies umgesetzt wird.
KubeOne unterliegt der Apache-2.0-Lizenz und ist vollständig als Open Source verfügbar. Für die Kernfunktionen gibt es keine kostenpflichtige Enterprise-Version.
Was ist KubeOne?
KubeOne ist ein CLI-Tool, das den gesamten Lebenszyklus von Kubernetes-Clustern verwaltet. Sie führen kubeone applyund übernimmt die Installation, Konfiguration, Aktualisierung und Fehlerbehebung – alles über ein einziges deklaratives Manifest.
KubeOne wurde von Kubermatic, dem Unternehmen hinter der Kubermatic Kubernetes Platform (KKP), entwickelt, um ein ganz bestimmtes Problem zu lösen: die Automatisierung von Kubernetes-Abläufen auf Infrastruktur, die von Managed Services nicht abgedeckt wird. Wenn Sie über SSH-Zugriff auf einen Server verfügen, kann KubeOne diesen in einen Kubernetes-Knoten verwandeln.
Im Hintergrund nutzt KubeOne „kubeadm“ – das offizielle Kubernetes-Bootstrapping-Tool. KubeOne ergänzt dies um Automatisierung, deklarative Konfiguration, Terraform-Integration und Day-2-Operationen. Anstatt ein Dutzend „kubeadm“-Befehle manuell auszuführen und darauf zu hoffen, dass man die richtigen Flags verwendet hat, definiert man seinen Cluster in YAML und lässt KubeOne jedes Mal die richtige Abfolge ausführen.
KubeOne übernimmt sowohl den Day-1- als auch den Day-2-Betrieb:
- Tag 1: Bereitstellung der Container-Laufzeitumgebung, Initialisierung der Control Plane mit kubeadm, Einrichtung von etcd, Bereitstellung der Netzwerk- und Cloud-Integrationen, Erstellung von Worker-Knoten.
- Tag 2: Versionsabweichungen erkennen, schrittweise Upgrades der Steuerungsebene und der Worker-Knoten durchführen, ausgefallene Knoten reparieren, Add-ons verwalten, Zertifikate rotieren.
So funktioniert KubeOne
Die Architektur von KubeOne ist übersichtlich. Vier Komponenten arbeiten zusammen, um aus einfachen Servern einen lauffähigen Cluster zu machen.
KubeOneCluster-Manifest
Alles beginnt mit einer YAML-Datei, dem sogenannten KubeOneCluster-Manifest. Diese Datei legt den gewünschten Zustand des Clusters fest: die gewünschte Kubernetes-Version, den Ziel-Cloud-Anbieter, die Host-Adressen der Control Plane, die Netzwerkkonfiguration sowie alle Add-ons, die bereitgestellt werden sollen. Diese Datei ist Ihre zentrale Informationsquelle. Verwalten Sie sie mit einer Versionskontrolle, überprüfen Sie sie in Pull-Anfragen und wenden Sie sie mit Zuversicht an.
Terraform-Integration
KubeOne stellt keine Infrastruktur bereit. Das ist die Aufgabe von Terraform, und KubeOne hält sich dabei zurück. Stattdessen liest KubeOne die Terraform-Ausgabe aus, um Ihre Infrastruktur zu erfassen – Server-IPs, SSH-Schlüssel, Load-Balancer-Adressen und cloudspezifische Metadaten. Sie führen terraform apply um Server zu erstellen, dann terraform output -json leitet diese Informationen an KubeOne weiter.
Kubermatic stellt im GitHub-Repository „KubeOne“ offizielle Terraform-Beispiele für jeden unterstützten Cloud-Anbieter bereit. Dabei handelt es sich um produktionserprobte Konfigurationen, die Sie direkt verwenden oder an Ihre Bedürfnisse anpassen können.
Tipp: Du kannst Terraform komplett überspringen und die Hosts manuell im KubeOneCluster-Manifest angeben. Dies ist üblich bei Bare-Metal-Setups, bei denen die Server bereits vorhanden sind und du KubeOne lediglich benötigst, um Kubernetes darauf zu installieren.
Ausführung über SSH
KubeOne verbindet sich über SSH mit Ihren Servern, installiert die Container-Laufzeitumgebung (containerd), richtet kubeadm ein und konfiguriert den Cluster. Es muss kein Agent installiert, kein Daemon gewartet und keine Control Plane auf Ihrem Laptop ausgeführt werden. KubeOne wird gestartet, erledigt seine Arbeit über SSH und wird anschließend beendet. Beim nächsten Start stellt es erneut eine Verbindung her, vergleicht den Ist-Zustand mit dem Soll-Zustand und nimmt alle erforderlichen Änderungen vor.
Maschinensteuerung
Sobald die Steuerungsebene bereit ist, stellt KubeOne den Machine-Controller bereit – einen Kubernetes-nativen Controller, der Worker-Knoten deklarativ verwaltet. Sie definieren MachineDeployment-Ressourcen (ähnlich wie Deployments, jedoch für Maschinen), und der Machine-Controller stellt Worker-Knoten automatisch bereit und fügt sie hinzu. Müssen Sie von 3 auf 10 Worker skalieren? Aktualisieren Sie die Replikanzahl. Müssen alle Worker auf ein neues Betriebssystem-Image umgestellt werden? Aktualisieren Sie die Spezifikation, und der Machine-Controller führt die Bereitstellung durch.
Der volle Fluss
Flussdiagramm LR
TF[Terraform
provisioniert Server]
Manifest["KubeOneCluster
Manifest (YAML)"]
K1["kubeone apply
(Ihr Laptop / CI)"]
TF -->|Terraform-Ausgabe| K1
Manifest --> K1
K1 -->|SSH| CP["Control-Plane-Knoten
(kubeadm init/join)"]
CP --> Cluster[(Laufender Cluster)]
Cluster --> MC[Machine-Controller]
MC -->|verwaltet| Workers[Worker-Knoten
über MachineDeployment]
Wesentliche Merkmale
Unterstützung mehrerer Anbieter. AWS, GCP, Azure, Hetzner Cloud, DigitalOcean, OpenStack, Equinix Metal, VMware vSphere, Nutanix und Bare-Metal-Server. Wenn Sie per SSH darauf zugreifen können, kann KubeOne es verwalten.
Automatische Updates. ausführen. kubeone apply mit einer neuen Kubernetes-Version in Ihrem Manifest. KubeOne erkennt die Versionsabweichung und führt ein rollierendes Upgrade durch – zuerst die Control-Plane-Knoten, dann die Worker. Kein manuelles Leeren, keine manuellen „kubeadm upgrade“-Befehle, kein Daumendrücken.
HA-Steuerungsebenen. Drei Knoten der Steuerungsebene, auf die etcd verteilt ist, und die sofort einsatzbereit konfiguriert sind. KubeOne übernimmt den etcd-Bootstrapping- und -Beitrittsprozess, der manuell bekanntermaßen schwierig durchzuführen ist.
Add-on-System. Stellen Sie CNI-Plugins (Canal, Cilium), CSI-Treiber, Cloud-Controller-Manager und Ihre eigenen benutzerdefinierten Add-ons als Teil des Cluster-Lebenszyklus bereit. Add-ons werden bei jedem kubeone apply laufen, sodass die Abweichung automatisch korrigiert wird.
Deklarative Konfiguration. Eine einzige YAML-Datei beschreibt Ihren gesamten Cluster. Sie müssen sich keine imperativen Befehle merken und keine Abfolge von Schritten befolgen. Legen Sie fest, was Sie möchten, wenden Sie es an, und KubeOne findet den Weg dorthin.
Verschlüsselte Geheimnisse. KubeOne lässt sich in Anmeldeinformationsanbieter integrieren, sodass Ihre Cloud-API-Schlüssel und SSH-Schlüssel niemals im Klartext in Ihrem Manifest gespeichert werden.
Wann sollten Sie KubeOne verwenden?
Bare-Metal- und kostengünstige Cloud-Lösungen
Sie verfügen über Server – vielleicht bei Hetzner, vielleicht bei Equinix Metal, vielleicht physische Maschinen in einem Rechenzentrum. Sie benötigen Kubernetes, aber Managed Services wie EKS oder GKE kommen nicht in Frage (falscher Anbieter, zu teuer oder einfach nicht für Ihre Infrastruktur verfügbar). KubeOne bietet Ihnen einen produktionsreifen, hochverfügbaren Kubernetes-Cluster auf beliebiger Hardware, inklusive automatischer Updates.
Edge und IoT
Sie benötigen Kubernetes an abgelegenen Standorten – in Fabrikhallen, Einzelhandelsgeschäften, Mobilfunkmasten oder auf Ölplattformen. In diesen Umgebungen ist die Konnektivität in der Regel eingeschränkt, und es steht keine Cloud-API zur Verfügung. KubeOne automatisiert Vorgänge, die andernfalls manuelle „SSH-and-pray“-Vorgänge wären: die Installation von Kubernetes, das Upgrade Monate später, wenn sich ein Wartungsfenster bietet, sowie die Reparatur bei Ausfall eines Knotens.
Konsistenz in Multi-Cloud-Umgebungen
Ihr Unternehmen betreibt Workloads auf AWS, GCP und vor Ort. Sie möchten überall denselben Kubernetes-Betriebsworkflow nutzen. Mit KubeOne verwenden Sie dasselbe Tool, dieselbe Manifeststruktur und dieselben kubeone apply Befehl, unabhängig davon, wo sich der Cluster befindet. Es ändert sich lediglich die Terraform-Schicht.
KubeOne im Vergleich zu anderen Tools
| Werkzeug | Cloud-Support | Bare Metal | Tag 2 – Operationen | Vorgehensweise | Lizenz |
|---|---|---|---|---|---|
| KubeOne | Alle großen Cloud-Anbieter | Erstklassig | Automatische Updates | Deklaratives YAML + SSH | Apache 2.0 |
| kubeadm | Beliebig | Ja (manuell) | Bedienungsanleitung | Imperative-Befehlszeile | Apache 2.0 |
| kOps | AWS (primär), GCP | Nein | Fortlaufende Aktualisierungen | Deklarativ, cloud-nativ | Apache 2.0 |
| Rancher/RKE2 | Alle großen Cloud-Anbieter | Ja | Über die Rancher-Benutzeroberfläche | von Landwirten bewirtschaftet | Apache 2.0 |
| Cluster-API | Alle großen Cloud-Anbieter | Experimentell | Deklarativ | Kubernetes-nativ (CRDs) | Apache 2.0 |
Der wesentliche Unterschied: KubeOne ist das einzige Tool, das Bare-Metal- und Cloud-Infrastrukturen gleichberechtigt behandelt und eine vollständige Automatisierung des Day-2-Lebenszyklus bietet. kubeadm stellt Ihnen die Bausteine zur Verfügung, bietet jedoch keine Automatisierung. kOps eignet sich hervorragend für AWS, unterstützt jedoch kein Bare Metal. Cluster API ist leistungsstark, erfordert jedoch einen bestehenden Management-Cluster und bietet nur eingeschränkte Unterstützung für Bare Metal.
Tipp: KubeOne und kOps richten sich an unterschiedliche Zielgruppen. Wenn Sie ausschließlich AWS nutzen und eine umfassende AWS-Integration wünschen, ist kOps die ideale Wahl. Wenn Sie Unterstützung für Bare-Metal-, Multi-Cloud- oder Edge-Umgebungen benötigen, ist KubeOne die bessere Wahl. Einen detaillierten Vergleich finden Sie unter „KubeOne vs. kOps “.
Die Terraform-Verbindung
Die Beziehung zwischen KubeOne und Terraform verdient besondere Beachtung, da sie für den praktischen Einsatz von KubeOne von zentraler Bedeutung ist.
KubeOne stellt bewusst keine Infrastruktur bereit. Das Erstellen von VMs, das Einrichten von Load Balancern und das Konfigurieren von Netzwerken – all das ist Aufgabe von Terraform (oder dem Infrastruktur-Tool Ihrer Wahl). Durch diese Trennung bleiben beide Tools auf ihre jeweiligen Aufgaben fokussiert: Terraform verwaltet die Infrastruktur, KubeOne verwaltet Kubernetes.
Der Arbeitsablauf sieht wie folgt aus:
- Erstellen Sie eine Terraform-Konfiguration für Ihre Infrastruktur (oder verwenden Sie eines der offiziellen Beispiele aus dem KubeOne-Repository).
- ausführen.
terraform applyum Server, Lastenausgleichssysteme und Netzwerke einzurichten. - ausführen.
terraform output -json > tf.jsonum Infrastrukturdaten zu exportieren. - ausführen.
kubeone apply --manifest kubeone.yaml -t tf.jsonum Kubernetes zu installieren.
Wenn Sie Kubernetes aktualisieren müssen, ändern Sie die Version in Ihrem KubeOneCluster-Manifest und führen Sie folgenden Befehl aus: kubeone apply wieder. Wenn Sie weitere Server hinzufügen müssen, aktualisieren Sie Ihre Terraform-Konfiguration, wenden sie an und führen kubeone apply um die Änderungen zu übernehmen.
In Bare-Metal-Umgebungen, in denen bereits Server vorhanden sind, überspringen Sie Terraform vollständig und führen Ihre Hosts direkt im KubeOneCluster-Manifest mit ihren IP-Adressen und SSH-Anmeldedaten auf.
Nächste Schritte
Sie wissen nun, was KubeOne ist, wie es funktioniert und wo es zum Einsatz kommt. Der nächste Schritt besteht darin, es selbst auszuprobieren.
- KubeOne installieren: Ihr erster Cluster in 15 Minuten – Das nächste Tutorial dieser Reihe führt Sie Schritt für Schritt durch die Installation von KubeOne und die Bereitstellung Ihres ersten Clusters.
- Wenn Sie bereits über Bare-Metal-Server verfügen, fahren Sie fort mit „Von Null zur Produktion: KubeOne auf Bare-Metal-Servern“ , um eine praktische Anleitung zu erhalten.
- Für Nutzer von Hetzner Cloud behandelt der Hetzner-spezifische Leitfaden die Anbieterkonfiguration und kostenoptimierte Konfigurationen.
Zusammenfassung
KubeOne automatisiert den gesamten Lebenszyklus von Kubernetes-Clustern – Installation, Upgrades und Fehlerbehebung – auf jeder über SSH erreichbaren Infrastruktur. Es lässt sich für die Infrastrukturbereitstellung mit Terraform kombinieren, nutzt intern kubeadm und setzt Machine-Controller für die deklarative Verwaltung von Worker-Knoten ein. Wenn Sie Kubernetes auf Bare-Metal-Servern, kostengünstigen Clouds oder Edge-Hardware benötigen, ohne für einen Managed Service zu bezahlen, ist KubeOne das richtige Tool für Sie.
