Channel Fokus: Cloud Native & Kubernetes Steuermann im eigenen Hafen

Autor Klaus Länger

Cloud-native Software funktioniert keineswegs nur als MSP-Lösung in der Public Cloud. Eine ganze Reihe von Herstellern bietet Hard- und Software für die Private Cloud im Rechenzentrum an. Eigene Kubernetes-Versionen und Zusatztools erleichtern das Management.

Anbieter zum Thema

Mit Kubernetes muss man sich nicht unbedingt auf große Fahrt in die Public Cloud begeben. Es funktioniert ebenso gut im eigenen Hafen, also dem lokalen Rechenzentrum. Die Navigation erleichtert eine ganze Reihe von Lösungen.
Mit Kubernetes muss man sich nicht unbedingt auf große Fahrt in die Public Cloud begeben. Es funktioniert ebenso gut im eigenen Hafen, also dem lokalen Rechenzentrum. Die Navigation erleichtert eine ganze Reihe von Lösungen.
(Bild: Idanupong – adobe.stock.com)

Die Zahl der deutschen Firmen und Institutionen, die wichtige Geschäftsprozesse nicht in die Public Cloud auslagern wollen oder können, ist immer noch beachtlich und die Zahl der verfügbaren Fachleute beschränkt. Allerdings müssen sie keineswegs auf moderne Cloud-native Anwendungen und deren Orchestrierung mittels Kubernetes verzichten. Zwar ist reines ­Kubernetes in seiner ursprünglichen Open-Source-Form nicht leicht beherrschbar, aber es gibt eine ganze Reihe von Lösungen, die den Umgang mit dieser Technologie erleichtern und sie auch die bestehende Infrastruktur im Rechenzentrum einbetten. Zudem sind diese Lösungen auch für die Nutzung in der hybriden Cloud ausgelegt, sodass die IT-Verantwortlichen und die Fachabteilungen das Beste beider Welten nutzen können.

Kubernetes-Lösungen für die hybride Cloud

Mit Ezmeral bietet HPE eine eigene Software-Container-Plattform an. Sie ist für On Premises, die Public Cloud, hybride Infrastrukturen und auch Edge-Standorte ausgelegt und auch als Service im Rahmen von HPE Greenlake erhältlich. Der Software Stack umfasst neben Kubernetes die HPE Data Fabric für persistenten Container ­Storage.

Tanzu ist die Kubernetes-Lösung von VMware, die auf einer ganzen Reihe von Plattformen läuft. Mit Tanzu Basic kann Kubernetes über die Kontrolloberfläche von vSphere 7 gesteuert werden und soll so ­einen schnellen Einstieg ermöglichen. Ein eigener Installer für Kubernetes gehört mit zum Paket. Ein relativ neues Angebot ist VMware Cloud Universal als Subscription für die hybride Cloud oder Multi-Cloud, in dem Tanzu Standard enthalten ist, mit dem dann auch Kubernetes entsprechend breit nutzbar ist, sich aber leichter installieren und verwalten lässt. Tanzu Advanced ist schließlich die Lösung für DevSecOps.

Mit OpenShift hat Red Hat eine eigene ­Kubernetes-Distribution im Portfolio, die zusätzliche Produktivitäts- und Sicherheitsfunktionen für Enterprise-Kunden enthält. OpenShift wird als Managed Service auf verschiedenen Cloud-Plattformen und auch in verschiedenen Varianten als durch den Kunden selbst verwaltete Lösung bereitgestellt, die auch im eigenen Datacenter eingesetzt werden kann. Suse hat Ende 2020 mit Rancher Labs einen der wichtigsten Hersteller von Kubernetes-­Management-Lösungen übernommen. Suse Rancher unterstützt dabei jede durch die CNCF (Cloud Native Computing Foundation) zertifizierte Kubernetes-Distribution in der hybriden Cloud.

Nutanix hat als HCI-Pionier und inzwischen Plattformanbieter für die hybride Multi-Cloud mit Karbon ebenfalls eine eigene Kubernetes-Lösung im Programm, die sich laut dem Hersteller besonders für Unternehmen eignen soll, die VMs und Container im Mix betreiben. Alle Acropolis-Kunden bekommen Karbon gratis.

Mit Azure Stack HCI gibt es schließlich auch von Microsoft ein eigenes HCI-­Betriebssystem für das eigene Rechenzentrum, das den Azure Kubernetes Service (AKS) unterstützt und natürlich für ein ­Zusammenspiel mit der Azure-Cloud ausgelegt ist.

Storage-Lösungen für Kubernetes und Cloud Native

Storage-Hersteller wie NetApp, Pure Storage oder der Storage-Software-Anbieter Scality haben ebenfalls Lösungen für persistente Volumes im Programm, die sich in Kubernetes Cluster einbinden lassen und weit über das herausgehen, was Kubernetes selbst bietet. NetApp hat gleich mehrere Softwarefirmen übernommen, um mit Astra eine Applikations- und Datenmanagement-Plattform für Kubernetes auf die Beine zu stellen, die mit lokalem Storage oder NetApps verschiedenen Cloud-Storage-Angeboten zusammenarbeitet. Pure Storage hat sich mit Portworx ebenfalls ­einen Kubernetes -Spezialisten einverleibt, um Storage, Backup und Disaster Recovery­ für Kubernetes Cluster anzubieten. Die Portworx-Lösung wird zwar in die eigene Software integriert, bleibt aber als Softwarelösung für beliebige Infrastrukturen erhalten. Scality Artesca ist eine skalierbare­ Objektspeichersoftware für Kubernetes-Umgebungen. Sie soll an Edge-Standorten, im Datacenter und in der Multi-Cloud als Primärspeicher für S3-fahige Cloud-native Applikationen dienen.

Ergänzendes zum Thema
Cluster, Pods und Container: Die Architektur von Kubernetes

Kubernetes ist ein Open-Source-Software für die Bereitstellung und Verwaltung von Con­tainern. Entwickelt wurde die Software ursprünglich als Projekt Borg bei Google. 2015 hat Google das Projekt an die seinerzeit neu gegründete Cloud Native Computing Foundation übergeben, unter deren Dach nun die Weiterentwicklung stattfindet.

Der schematische Aufbau der Kubernetes-Architektur.
Der schematische Aufbau der Kubernetes-Architektur.
( Bild: Khtan66 / Wikimedia Commons / CC BY-SA 4.0 )

Mit Kubernetes-Clustern können Container über mehrere Rechner hinweg und in unterschiedlichen Umgebungen ausgeführt werden: Cloud-basiert und On Premises. Kuber­netes-Container sind dabei nicht auf ein bestimmtes Betriebssystem beschränkt.

Ein Kubernetes-Cluster ist aus mehreren Nodes aufgebaut, die durch einen oder mehrere Kubernetes Master kontrolliert werden, der als Control Plane bezeichnet wird. Die Control Plane enthält mit Etcd eine hochverfügbare Komponente, die Clusterdaten speichert.

Die einzelnen Nodes sind VMs oder physische Maschinen, auf denen die Container mit den Apps laufen. Der Kubernetes-API-Server stellt das Frontend der Control Plane dar und verarbeitet externe und interne Anforderungen. Er kommuniziert mit den Kubelet-Anwendungen, die auf den Nodes ausgeführt werden und mittels des cAdvisor überwachen, ob die Container ordnungsgemäß ausgeführt werden. Jeder Node enthält zudem einen Kube-Proxy, der die Netzwerkkommunikation innerhalb oder außerhalb des Clusters verwaltet.

In einem Kubernetes Cluster werden Container nicht direkt auf den Nodes ausgeführt, sondern in Pods gepackt, die einen oder mehrere Container aufnehmen. Dabei laufen mehrere Instanzen eines Pods in einem ReplicaSet. Fällt ein Pod aus, dann wird eine neue Instanz gestartet. ReplicaSets erleichtern zudem das Load Balancing. Das Deployment steuert Rolling Updates und Rollbacks der Replica Sets. So kann eine neue Version eines Services ohne Downtime ausgerollt werden. Die Anwendungs-Konfiguration für einen Service wird dabei in ConfigMaps und Secrets gespeichert. Sie stehen einem Container als Umgebungsvariable oder über ein Volume zur Verfügung.

Die Container in den Pods werden aus Images referenziert, die in einer Container-Registry liegen. Der Scheduler platziert Container entsprechend den Ressourcenanforderungen und Kennzahlen. Er berücksichtigt dabei den Ressourcenbedarf eines Pods, wie die CPU-Leistung oder den Arbeitsspeicher, sowie den Zustand des Clusters. Der Controller Manager sorgt schließlich wiederum dafür, dass ein Cluster tatsächlich läuft. Er verwaltet Controller wie Knoten-, Endpunkt- und Replikations-Controller.

Mittels CronJobs können Pods für periodisch wiederkehrende Aufgaben wie etwa Backups gestartet werden. Die Prozesse in den Containern innerhalb des Pods sollten sich dabei nach dem Abschluss der Aufgabe selbst beenden. Ein DaemonSet sorgt dafür, dass eine Kopie ­eines Pods auf vielen oder gar allen Nodes in einem Cluster läuft. Typische Anwendungs­fälle sind das Monitoring von Nodes oder das Einsammeln von Logfiles.

Da das Dateisystem eines Containers nicht persistent ist, werden für die längere Speicherung von Daten, etwa für Datenbanken, persistente Volumes benötigt, die man in einem Container mounten kann.

(ID:47464351)