Was Sie über Kubernetes wissen müssen

17.08.2022
Von  und
Ralf Baumann ist Country Manager Germany bei Veritas Technologies.
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?
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.
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?

  • (Vanilla-)Kubernetes: Mit dem unmodifizierten Kubernetes machen wahrscheinlich die meisten Anfänger erste Erfahrungen. Es ist äußerst flexibel und erweiterbar, ihm fehlen aber Funktionen für den Einsatz in großen Unternehmen rund um Monitoring, Statusmanagement, Verfügbarkeit und mehr. Den Einsatz von reinem Open Source Kubernetes sollten allenfalls Unternehmen mit großem technologischem Know-how in Betracht ziehen, die Tools und Plattformen selbst entwickeln und dies als eine ihrer Kernkompetenzen betrachten.

  • Platform-as-a-Service-(PaaS-)Kubernetes: Diese Varianten bieten Plattformen mit meist vorkonfigurierten Kubernetes und zugehörigen Tools, einschließlich Sicherheits-, Networking- und Speicherfunktionen. Normalerweise ist die Inbetriebnahme einer PaaS-Kubernetes-Version sehr viel leichter als von Vanilla-Kubernetes. PaaS-Lösungen sind allerdings auch deutlich weniger flexibel. PaaS-Kubernetes eignet sich vor allem für Unternehmen mit wenig internem Know-how, die Kubernetes so schnell wie möglich einführen wollen, ohne eigene Tools oder Qualifikationen zu entwickeln. Wenn die Zeit bis zur Aufnahme des Produktivbetriebs möglichst kurz sein soll und Kostenbegrenzung sowie Flexibilität der Infrastruktur keine entscheidende Rolle spielen, kann PaaS eine gute Option sein.

  • Enterprise-Kubernetes-Plattformen: Sie kombinieren Upstream-konformes Kubernetes mit Tools für das Management des gesamten Anwendungslebenszyklus. Sie bieten eine zentrale Plattform zur Steuerung verschiedener Cluster und Umgebungen an. Solche Plattformen erleichtern zentralisierten Teams die unternehmensweite Steuerung von Konfigurationen und Access Management. Enterprise-Kubernetes-Plattformen bieten wesentlich mehr Flexibilität als jede andere Option, abgesehen von Open Source Kubernetes. Diese Plattformen sind entweder Entwickler-orientiert oder Operations-orientiert. Entwickler-orientierte Plattformen bieten vor allem eine einfache Anwendung für Entwickler, während Operations-orientierte Plattformen meist ausgefeiltere Steuerungsmöglichkeiten für den Betrieb enthalten, oft zur Sicherung der Verfügbarkeit und Stabilität. Am besten eignet sich diese Variante für Großunternehmen mit komplexen Installationen in verschiedenen Umgebungen und ausreichend Know-how, um Vorteile aus der Flexibilität dieser Plattform zu ziehen.

  • Gemanagte Kubernetes-Lösungen: Hier übernehmen Service-Provider für Unternehmen das Management von Kubernetes-Clustern - in eigenen oder On-Premises angesiedelten Rechenzentren oder in der Public Cloud. Verwaltete Kubernetes Services bieten Enterprise Support, garantierte Verfügbarkeit und ein Rundum-Sorglos-Paket für den Kunden. Verwaltete K8s-Lösungen gibt es für Vanilla- oder Enterprise-Plattformen. Der Wert bemisst sich nach dem Funktionsumfang der Kubernetes. Zudem können Managed-Service-Anbieter eine Lösung zu einem wettbewerbsfähigen Preis anbieten. Der Kunde muss bei seiner Wahl zwischen Funktionalität, Kosten und Flexibilität abwägen. (hi)