Leigh Prather - stock.adobe.com
Ist Managed Kubernetes das richtige für Ihr Unternehmen?
Containervirtualisierung hat viele Vorteile – Flexibilität, Ressourcenauslastung und schnelle Bereitstellung – ist aber auch komplex. Managed Kubernetes verspricht hier Abhilfe.
Containervirtualisierung mit Kubernetes sorgt für mehr Effizienz und niedrigere Kosten in der IT. Doch die Umsetzung in Eigenregie ist nicht einfach. Vor allem der Mittelstand sollte deshalb auf einen Managed Service zurückgreifen.
Die IT-Infrastruktur in den Betrieben wächst und wächst. Größere Unternehmen betreiben hunderte oder sogar tausende Anwendungen. Mit Containervirtualisierung lasten sie ihre Kapazitäten besser aus. Dabei werden Anwendungen in Container verpackt, die untereinander und vom Betriebssystem isoliert sind. Sie sind effizienter, da sie weniger Arbeitsspeicher und Storage als virtuelle Server benötigen.
Doch Container allein reichen häufig nicht. Zur weiteren Steigerung der Effizienz nutzen Rechenzentren das Architekturkonzept der Microservices. Dazu zerlegen sie Anwendungen in kleine, wiederverwendbare und leicht auszutauschende Komponenten – und diese verpacken sie meist in einen Container. So können sie beispielsweise den gleichen Druckservice in verschiedenen Anwendungen einsetzen.
Kubernetes und das Orchester der Container
Wie die einzelnen Instrumente in einem Orchester müssen Container und Services zum richtigen Zeitpunkt einsetzen. Tatsächlich ist in der IT-Fachsprache von Orchestrierung die Rede. In den meisten Fällen gibt es zahlreiche Abhängigkeiten von Services und Anwendungen untereinander und zudem müssen die nötigen Ressourcen verfügbar sein. So ist es denkbar, dass jeder neu gestartete Container auf einem anderen Server läuft, da dort gerade ausreichend Kapazitäten sind.
Manuell ist das ein viel zu großer Aufwand. Stattdessen verwenden viele ein Orchestrierungs-Tool wie Docker Swarm, Apache Mesos, Nomad oder Kubernetes – die mit Abstand beliebteste Orchestrierungslösung – um diesen Prozess zu automatisieren. Sie wird von vielen Unternehmen genutzt, auch wenn sie für kleine und mittelgroße Unternehmen nur bedingt geeignet ist. Denn vor allem bei sehr komplexen Infrastrukturen ist der Konfigurationsaufwand recht hoch. Als Open-Source-Software kann Kubernetes jedoch von jedem genutzt werden und lädt zum Experimentieren ein, in der Hoffnung, die Infrastruktur besser auszulasten.
Dafür ist ein sogenanntes Kubernetes-Cluster erforderlich. Es besteht aus zwei oder mehr Knoten (Nodes), entweder physischen Computern oder virtuellen Maschinen (VMs). Einer der Knoten ist der sogenannte Master-Node, der die Verwaltungsarbeit übernimmt. Die anderen Knoten sind Worker-Nodes, auf denen die eigentlichen Anwendungen laufen. Das kleinste mögliche Kubernetes-Cluster besteht aus einem Master und einem Worker. Er kann im Grunde auf jedem leistungsfähigen Linux-Rechner mit einem Hypervisor für VMs gestartet werden. Für Experimente reicht das aus, doch für den produktiven Betrieb sind größere Infrastrukturen notwendig.
Container mit Docker erzeugen und auf Pods verteilen
Mit ihnen wird es dann auch gleich kompliziert. So kann ein größerer physischer Kubernetes-Cluster durch Namespaces in mehrere virtuelle Cluster zergliedert werden, beispielsweise für unterschiedliche Projekte, Teams oder Geschäftsbereiche. Auf diese Weise kommen sich die einzelnen Bereiche nicht in die Quere und die Infrastruktur ist etwas leichter zu verwalten.
Eine weitere Komponente der physischen und virtuellen Kubernetes-Cluster sind Pods. Diese Einheiten aus zwei oder mehr Containern werden stets gemeinsam auf einem Knoten gestartet, weil es zwischen ihnen Abhängigkeiten gibt. Ein Beispiel dafür wäre ein ERP-System (Enterprise Resource Planning), das zwingend Daten mit einem Manufacturing Execution System (MES) austauscht, so dass beide gleichzeitig in einem Pod gestartet werden sollten.
Die Container werden üblicherweise mit der Docker-Engine ausgeführt. Diese Open-Source-Software war die erste Linux-Lösung, die eine Container-Virtualisierung konsequent umgesetzt hat. Kubernetes übernimmt dabei die Arbeit der Administratoren und vereinfacht die Bereitstellung der Anwendungen. Zudem müssen sich Entwickler nicht mehr mit der Verteilung der Anwendungen auf die Knoten befassen – das geschieht automatisch.
Automatisierung für moderne IT-Infrastrukturen
Basis dieser Automatisierung sind die Ressourcenanforderungen des Entwicklers, die er als Beschreibung dem Container hinzufügt. Anschließend kümmert sich Kubernetes um das gesamte Management von Containern, Pods und Knoten. Das System garantiert damit eine optimale Kommunikation der Services und Container sowie eine gute Auslastung.
Hinzu kommt die Zustandsprüfung der einzelnen Knoten. Vor allem in großen Infrastrukturen ist es sehr wahrscheinlich, dass gelegentlich ein Knoten ausfällt. Auch hier hilft Kubernetes, da alle betroffenen Container automatisch auf einen funktionierenden Knoten verschoben werden. Ein weiterer Vorteil für moderne Infrastrukturen ist die vertikale Autoskalierung der Pods, die Ressourcen (Prozessoren und Speicher) auch während des Betriebs hinzufügt oder entfernt.
„Der größte Vorteil von Managed Kubernetes: Die IT-Teams in den Unternehmen müssen sich nicht mit den Details beschäftigen. Der Anbieter kümmert sich um Monitoring, Release-Management und Betrieb der gesamten Container-Infrastruktur.“
Henrik Hasenkamp, gridscale
Diese Erläuterungen zeigen deutlich, dass Kubernetes sehr viel automatisiert, aber dafür zunächst richtig konfiguriert werden muss. Zudem übernimmt das System nicht die Provisionierung neuer Server oder die Bereitstellung von persistentem Speicher. Dafür ist eine entsprechende Infrastruktur im Hintergrund notwendig. So steigt die Komplexität von Kubernetes rasch an und wird die IT-Teams vieler kleiner und mittelgroßer Unternehmen schnell überfordern.
Komplexität mit Managed Kubernetes verringern
Die Lösung für das Komplexitätsproblem lautet: Kubernetes als Managed Service in der Cloud. Hier müssen sich die Nutzer nicht mit administrativen Details beschäftigen, sondern können Kubernetes-Cluster mit wenigen Klicks anlegen. Es ist hilfreich, passende Voreinstellungen und Templates verfügbar zu haben. So sollten häufig benötigte Optionen wie Load Balancer, Persistent Storage und Scheduler sinnvoll voreingestellt sein. Damit legen die Nutzer sofort los und brauchen erst später die Konfiguration anzupassen.
Eine wichtige Grundfunktion dabei ist die automatische Provisionierung, um überhaupt ausreichend virtuelle Maschinen für den Cluster zur Verfügung zu haben. Ebenso automatisch sollten Updates ausgerollt und gestörte Server mit Auto-Healing wiederhergestellt werden. Und nicht zuletzt sollte zum Managed Service entweder ein eigenes Identity- und Access-Management (IAM) oder Schnittstellen zu den entsprechenden Lösungen gehören.
Der größte Vorteil von Managed Kubernetes: Die IT-Teams in den Unternehmen müssen sich nicht mit den Details beschäftigen. Der Anbieter kümmert sich um Monitoring, Release-Management und Betrieb der gesamten Containerinfrastruktur. Bei den Nutzern steht stattdessen der Betrieb der Anwendungen im Vordergrund. Sie erreichen dadurch teils erhebliche Kosteneinsparungen, da die IT-Infrastruktur schlanker wird. Gleichzeitig ist die Verfügbarkeit und Stabilität auf dem Niveau großer Rechenzentren.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.