Was Sie über Kubernetes wissen müssen

17.08.2022 von Alex Chalkias und Ralf Baumann
Das Open-Source-System Kubernetes macht Container in Produktionsumgebungen erst brauchbar. Das müssen Sie zum Thema wissen.
Kubernetes hat die Unternehmens-IT im Sturm erobert. Doch was steckt dahinter?
Foto: dennizn - shutterstock.com

Kubernetes und Container haben die Unternehmens-IT im Sturm erobert.Beide Technologien zusammen bieten Unternehmen erhebliche Vorteile. Sie senken die IT-Kosten, verbessern die Produktivität in der Entwicklung, verkürzen die Time-to-Market, arbeiten plattformübergreifend und vereinfachen den Betrieb.

Da containerisierte Anwendungen kein eigenes Betriebssystem haben, können sie ohne Modifikation in jeder Umgebung laufen. Zudem benötigen sie weniger Rechenleistung und Speicher als virtuelle Maschinen. Damit bieten sie Unternehmen substanzielle Einsparpotenziale. Allerdings werden Container umso komplexer, je größer die Anwendung ist. Speziell in Produktionsumgebungen muss die IT-Abteilung oft Millionen von Containern installieren, disponieren und nach Ausfällen wieder hochfahren und mit der Außenwelt verbinden. Das funktioniert nur mit einer automatisierten Container-Orchestrierung. Und hier kommt Kubernetes ins Spiel.

Kubernetes - Definition

Kubernetes, auch K8s genannt, ist ein Open-Source-Orchestrierungssystem für Container, das Google entwickelt hat. Es wurde 2014 als Open-Source-Projekt freigegeben. Es dient dazu, die Steuerung der Container-Orchestrierung zu konfigurieren und zu automatisieren - einschließlich Installation, Skalierung und Betrieb. Außerdem steuert Kubernetes die Diensterkennung, Lastverteilung, Speicherorchestrierung und das Self-Healing sowie die Verwaltung von Secrets. Um Kubernetes herum existiert mittlerweile ein riesiges Ökosystem an unterstützenden Tools für die Automatisierung von Aufgaben wie Skalierung, Scheduling und Failure Recovery. Ohne Kubernetes wären Unternehmen kaum in der Lage, einen Nutzen aus Containern zu ziehen. Der Preis dafür wäre zu hoch. Das ist der Grund, warum sich das System in kurzer Zeit zur Standard-Orchestrierungsplattform für Container entwickelt hat.

Kubernetes-Vorteile - Container minus Komplexität

Container verpacken eine Anwendung oder einen Microservice zusammen mit den Bibliotheken, Binärdateien und Konfigurationsdateien, die sie für den Betrieb benötigen. Im Gegensatz zu virtuellen Maschinen (VM) besitzen Container kein eigenes Betriebssystem. Dadurch sind sie sehr anspruchslos und können ohne Modifikation in jeder Umgebung laufen.

Container können viel effizienter sein als VM-basierte oder andere, ältere Anwendungsarchitekturen. Sie können dichter in Instanzen gepackt werden und reduzieren damit den Ressourcenbedarf für den Betrieb einer Anwendung, gleichgültig ob in einem Rechenzentrum oder in der Cloud. Weil sich Container ein Betriebssystem teilen, sind sie anspruchsloser als eine virtuelle Maschine und erfordern weniger Rechenleistung und weniger Arbeits- und dauerhaften Speicher. Damit sind substanzielle Kosteneinsparungen für das gesamte Unternehmen möglich.

Container haben sich in der Unternehmens-IT durchgesetzt, werden aber umso komplexer, je größer die Anwendung ist. Das zeigt sich besonders in Produktionsumgebungen: Häufig arbeitet ein mittelgroßes IT-Team mit Millionen von Containern, vor allem, wenn Microservices genutzt werden. Neben vielen anderen Anforderungen im Betrieb müssen Container installiert, disponiert, nach Ausfällen wieder hochgefahren und mit der Außenwelt verbunden werden. Ohne automatisierte Containerorchestrierung durch Kubernetes ginge das nur manuell. Was eine nicht praktikable Anzahl von Technikern erfordern würde, deren Aufgabe einzig und allein das Scheduling von Containern wäre. Irgendeine Art von Containerorchestrierung ist also nötig, um mit Containern erfolgreich zu arbeiten. Und die Industrie hat schnell erkannt, dass es besser ist, auf Kubernetes zu setzen, als eine Orchestrierungsplattform für Container komplett neu zu entwickeln oder eine der konkurrierenden Technologien einzusetzen.

Wie sicher ist Kubernetes?

Allerdings ist auch Kubernetes nicht vor Malware gefeit, wie die Entdeckung von Siloscape Anfang letzten Jahres gezeigt hat. Sie stellt den Wendepunkt für Ransomware in containerisierten Umgebungen dar. Vor der Siloscape-Entdeckung gingen Experten davon aus, dass Kubernetes aufgrund der kurzlebigen Eigenschaft der Container gegen Ransomware resistent ist und die Malware mit dem Container heruntergefahren wird. Allerdings ist der Schadcode vermutlich zum ersten Mal in der Lage, den Container zu verlassen und sich so über Hintertüren in schlecht konfigurierten Kubernetes-Clustern zu verbreiten. Dadurch ist er in der Lage, einen weitaus größeren Schaden in dem anvisierten Netzwerk zu verursachen, indem er Daten auf Cluster-Ebene sammelt und dadurch Details zu gehosteten Datenbanken, Log-in-Informationen und anderen geschäftskritischen Daten erhält.

Eine Verschlüsselung dieser Daten durch Ransomware kann zu einem Totalausfall führen. Denn wenn der Schadcode ein ganzes Kubernetes-Cluster kompromittiert, wirkt sich das auf mehrere Anwendungen gleichzeitig aus. Und da solche Cluster auch in Entwicklungs- und Testumgebungen zum Einsatz kommen, kann eine Ransomware-Attacke zudem Folgen für die Software-Lieferkette und wichtige neue Dienste haben.

Die Angreifer suchen entweder gezielt nach Schwachstellen im Code, oder sie nutzen aus Security-Sicht schwache Konfigurationen der Kubernetes-Umgebung aus. Und die gibt es häufig: Laut einer aktuellen Kubernetes-Studie von Veritas gab jedes zweite befragte Unternehmen an, bereits einen Ransomware-Angriff auf ihre Container-basierte Umgebung erlebt zu haben. Und 97 Prozent sehen in diesen Attacken ein Risiko für ihr Unternehmen.

Kubernetes ermöglicht die automatisierte Containerorchestrierung.
Foto: NESPIX - shutterstock.com

Datensicherung und -wiederherstellung in Kubernetes

Aber wie lassen sich Kubernetes-Daten sichern? Und was müssen Backup und Recovery bei den diversen Distributionen leisten, um die Vorzüge von diesen nicht zu verspielen?

Grundsätzlich sollte eine Backup-Lösung für Kubernetes Hybrid- und Multi-Cloud-Umgebungen unterstützen, unterschiedliche Backend-Speichersysteme abdecken und in der Lage sein, Daten in verschiedenen Kubernetes-Umgebungen wiederherzustellen. Entscheidend ist zudem, dass die Lösung den speziellen Aufbau von Kubernetes berücksichtigt und das System von oben nach unten sichert. Kubernetes-Plattformen arbeiten auf Basis eines Master-Slave-Modells, das sich hierarchisch aus mehreren Worker-Nodes und dem Cluster-Master-Node an der Spitze zusammensetzt. Die kleinste Einheit ist der Pod, der einen oder mehrere Container bildet. Ein weiterer Bestandteil von Kubernetes sind die sogenannten Namespaces, die meist als Projekte oder Applikationen definiert sind und durch die eingebundenen Pods, Container, Konfigurationsinformationen und Storages den eigentlichen Business Value liefern.

Nach dieser Struktur sollten die Elemente per Backup gesichert werden. Entscheidend ist ein integrierter Ansatz für die Datensicherung und Wiederherstellung, der die Private-, Public-, oder Hybrid-Cloud-Architektur berücksichtigt. Das Backup-Konzept sollte zudem eng mit dem Cluster verbunden sein und in einer ressourcenschonenden Implementierung mit dem Master über die verfügbaren Automatisierungsschnittstellen kommunizieren.

Um die Applikationen zu schützen, muss der vollständige Namespace mit allen Komponenten gesichert werden. Und im Recovery-Fall muss es möglich sein, die Persistent Volumes unabhängig vom Namespace wiederherzustellen. Um die Agilität von Kubernetes zu wahren, sollten sich die Namespaces auch auf alternativen Clustern wiederherstellen lassen. Zudem gilt es, regelmäßig zu untersuchen, ob in den Clustern neue Namespaces angelegt wurden. Ein einwandfreies Zusammenspiel zwischen Kubernetes-Distribution und Backup-Lösung ist daher unerlässlich. Unternehmen können ihre Daten nur umfassend schützen, wenn sie die bestehenden Datensicherheitsmaßnahmen auch auf ihre Container-Umgebungen ausweiten und Silo-Lösungen für die Datensicherung abschaffen.

Unterstützung gängiger Distributionen, sinnvolle Add-ons

Wichtig ist zudem, dass die Backup-Lösung die am häufigsten produktiv genutzten Distributionen unterstützt. Den größten Kubernetes-Marktanteil hat hierzulande Red Hat Openshift, aber auch VMware drängt mit Tanzu immer stärker in den Markt. Sinnvoll sind außerdem intelligente Ergänzungen - etwa die Anbindung an ein durch das Backup gesteuerte Retention-Management mit Replikationsmöglichkeiten. Dies kann helfen, Bedrohungen durch Ransomware zu adressieren, sofern die 3-2-1-Regel für Backups berücksichtigt wird. Und mit einem Backup Data Mover lässt sich die Bandbreite der Backup-Storage-Ziele auf die vom Anbieter unterstützte Kompatibilität erweitern. Dadurch wird Kubernetes Ende-zu-Ende in ein zentrales Backup- und Recovery-Konzept integriert. Das reduziert die Komplexität und die Risiken - und damit den Aufwand und die Kosten.

Kubernetes-Modelle - Welches darf es sein?

Die Herausforderungen im Betrieb von Kubernetes können dazu führen, dass Unternehmen nicht alle Vorteile von Containern und Kubernetes nutzen können. In den meisten Fällen sind Sicherheit und Compliance unerlässlich: Bei nicht ausreichender Absicherung von Kubernetes oder Nichterfüllen der Compliance-Anforderungen, wird das Projekt erfolglos beendet. Andere Herausforderungen wie Kosten und Qualifikationsdefizite stellen den effizienten Ressourceneinsatz und die Agilität in der Entwicklung in Frage, die Unternehmen in jedem Fall von Kubernetes erwarten. Welches Kubernetes-Modell sollte wer verwenden?