Was ist Kubernetes?

27.01.2021
Von 
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

Wenn eine Software die Unternehmens-IT im Sturm erobert, dann muss daran schon etwas Besonderes sein. Kubernetes und Containern ist das überzeugend gelungen. Warum? Weil beide Technologien zusammen Unternehmen erhebliche Vorteile bringen. 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. Container sind schon seit über zehn Jahren erfolgreich ein Teil von Linux. Ihre große Bedeutung gewannen Sie aber erst als Google Kubernetes zu Open Source erklärte. Kubernetes ist also der Schlüssel zum Erfolg.

Kubernetes - Definition

Kubernetes ist ein Open-Source-Orchestrierungssystem für Container, das Google entwickelt hat. Es wurde 2014 als Open-Source-Projekt freigegeben. Auch K8s genannt, bietet es eine deklarative Konfiguration und Automatisierung zur Steuerung der Containerorchestrierung. Es automatisiert auch die Installation, die Skalierung und den Betrieb von Containern. Daneben übernimmt Kubernetes die Steuerung der Diensterkennung, Lastverteilung, Speicherorchestrierung und Self-Healing, sowie die Verwaltung von Secrets. Um Kubernetes herum existiert mittlerweile ein riesiges Ökosystem an unterstützenden Werkzeugen. Der Name "Kubernetes" geht zurück auf das griechische Wort für Steuermann oder Lotse.

Kubernetes hat sich zur Standard-Orchestrierungsplattform für Container entwickelt und stellt Unternehmen die Tools zur Verfügung, die sie für die Automatisierung von Aufgaben wie Skalierung, Scheduling und Failure Recovery benötigen.

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.

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

Kubernetes ermöglicht den praktischen Einsatz von Containern. Ohne eine Container-Orchestrierungsplattform wären Unternehmen realistischerweise nicht in der Lage, einen Nutzen aus Containern zu ziehen. Der Preis dafür wäre zu hoch. Mit Kubernetes können Unternehmen Lastverteilung, Self-Healing, Speicherorchestrierung und Konfigurationsmanagement automatisieren. Automatische Roll-outs und Roll-backs einschließlich hochentwickelter Installationsstrategien wie Canary-Installationen werden außerdem möglich.

Obwohl Kubernetes und Container die beiden wichtigsten Elemente eines Cloud-Native-Stack sind, löst Kubernetes nicht alle Herausforderungen von Unternehmen, die eine containerisierte Cloud-Native-Anwendung in der Produktion einsetzen. Zunächst mussten die ersten Anwender - wie wir bei Canonical beobachteten - ihre eigenen, internen Lösungen entwickeln, um die von Kubernetes in das System gebrachte Komplexität zu verwalten und die neu entstandenen Herausforderungen im täglichen Betrieb zu meistern.

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)