ArtikelVirtualisierung

Welches Kubernetes darf’s denn sein?

Autor/Redakteur: Alex Chalkias, Produktmanager Kubernetes bei Canonical/gg

Kubernetes hat sich in wenigen Jahren zur Standard-Orchestrierungsplattform von Containern entwickelt. Das Open Source-System automatisiert Workloads so effizient, dass dadurch die Nutzung von Containern besser funktioniert und viel zuverlässiger wird, gerade in großen Implementierungen. Dennoch ist Auswahl und Betrieb von Kubernetes komplex. Was gilt es für Unternehmen zu beachten?

Bild: Canonical

Kubernetes und Container haben sich – als quasi nahezu unschlagbares Gespann – in den letzten Jahren in der Unternehmens-IT durchgesetzt. Im Gegensatz zu einer virtuellen Maschine (VM) verfügt jeder Container nicht über ein eigenes Betriebssystem, sondern läuft auf einem gemeinsam genutzten OS. Daher sind Container sehr leichtgewichtig und können in jeder Umgebung ohne Änderungen ausgeführt werden. Zudem verringern sie beim Betrieb einer Anwendung deren Ressourcenbedarf. Da es so einfach ist, Container zu erstellen, nimmt ihre Zahl nicht nur schnell zu, sie werden auch sehr schnell verwendet, gestartet und beendet. Deswegen kann das Container-Management sehr komplex werden. Kubernetes hilft hier: Das Open Source System automatisiert die Containerorchestrierung sowie deren Installation, Skalierung und Betrieb. Diese Automatisierungsebene macht Container erst richtig brauchbar in der Produktion.

Kubernetes und Container: komplett im Duett

Google hat Kubernetes entwickelt und im Jahr 2014 als Open-Source-Projekt freigegeben. Auch K8s genannt, bietet es deklarative Konfiguration und Automatisierung für die Containerorchestrierung. Kubernetes steuert auch Diensterkennung, Lastverteilung, Self-Healing und Speicherorchestrierung. Rund um Kubernetes existiert mittlerweile ein riesiges Ökosystem an unterstützenden Tools.

Container verpacken eine Anwendung oder einen Microservice, zusammen mit Bibliotheken, Binärdateien und Konfigurationsdateien. Sie teilen sich den Betriebssystem-Kernel, wodurch sie anspruchsloser als virtuelle Maschinen sind und weniger Rechenleistung, Arbeit und dauerhaften Speicher brauchen. Dies ermöglicht erhebliche Kosteneinsparungen für Unternehmen. Die Schwäche von Containern ist die Komplexität ihres Managements und die offensichtliche Komplexität der Anwendung, die sie zusammen bilden (mehrere Micro-Services versus monolithische Anwendungen).

Bei Produktionsumgebungen arbeitet oft ein mittelgroßes IT-Team mit Millionen von Containern, vor allem, wenn Microservices genutzt werden. Neben vielen anderen betrieblichen Anforderungen gilt es Container bereitzustellen, zu disponieren, nach Ausfällen wieder hochzugefahren und mit der Außenwelt zu verbinden. Ohne automatisierte Container-Orchestrierung durch Kubernetes ginge das nur manuell. Eine unrealistisch hohe Zahl von Technikern müsste sich einzig und allein um das Scheduling von Containern kümmern. Mit seinen Automatisierungs-Tools ermöglicht Kubernetes den praktischen Einsatz von Containern, auch in großen Umgebungen.

Obwohl Kubernetes und Container die beiden wichtigsten Elemente eines Cloud-Native- Stack sind, ist Kubernetes nicht von vorneherein die Allzweckwaffe beim Einsatz einer containerisierten Cloud-Native Anwendung in der Produktion. Denn auch Kubernetes bringt wieder Komplexität in das System. Anwender haben zunächst eigene, interne Lösungen entwickelt, um diese neuen Herausforderungen zu meistern. Im Laufe der Zeit sind verschiedene Anbieter aufgetaucht, die Kubernetes-Lösungen für Unternehmen offerieren, um selbst entwickelte Lösungen zu ersetzen. Die schiere Menge von Anbietern und Lösungen kann verwirrend wirken.

Gibt es die Patentlösung für den Einsatz von Kubernetes?

Worauf sollten Unternehmen beim Einsatz von Kubernetes, worauf sollten sie vorher bei der Auswahl einer Lösung beziehungsweise eines Bereitstellungsmodells achten? Die wichtigsten Faktoren sind Größe, internes technisches Know-how, Branche, Budget und vorhandene Infrastruktur.