Seite wählen

How To NWS: Managed Kubernetes

von | Jul 5, 2021 | Kubernetes

This entry is part 5 of 7 in the series How To NWS

Nachdem sich im letzten Blog alles um OpenStack gedreht hat,  möchte ich heute die Gelegenheit nutzen, um  unser Managed Kubernetes Angebot vorzustellen.

Was ist Kubernetes überhaupt und wie lässt es sich einsetzen? Um diese Fragen zu beantworten, macht es Sinn zunächst kurz die Entwicklung der Ressourcennutzung auf einem Betriebssystem aufzuzeigen.

Entwicklung der Ressourcennutzung:

Früher gab es keine Möglichkeit auf einem physischen Server Ressourcengrenzen für eine Anwendung zu setzen. Beanspruchte eine App viele Ressourcen, blieb für die anderen entsprechend wenig zur Verfügung. Dieses Problem wurde durch die Virtualisierung gelöst. Nun konnte die CPU von einem physikalischen Server auf mehrere Virtuelle Maschinen aufgeteilt werden. Jede VM bekommt hierbei feste Ressourcengrenzen zugeteilt und somit können mehrere Apps nebeneinander auf einem Server laufen, ohne sich gegenseitig die notwendigen Ressourcen streitig zu machen. Durch die Virtualisierung war nun auch die Möglichkeit der Skalierbarkeit gegeben. Bei Bedarf lassen sich die Ressourcen einer VM leicht erhöhen und später genauso wieder herunterdrehen.  So lässt sich ein physischer Server wesentlich kosteneffizienter betreiben.

Jede VM bringt allerdings immer ihr eigenes, installiertes Betriebssystem mit. Abhängig von der Zahl der eingesetzten VMs auf einem Server werden so entsprechend viele Ressourcen mit dem Betriebssystemunterbau belegt. Mit der Containervirtualisierung konnte man diesen Umstand umgehen. In Containern werden zwar auch Anwendungen virtualisiert. Aber im Unterschied zu VMs besitzen Container kein eigenes Betriebssystem, sondern nutzen das des Hostsystems. Sie brauchen somit weniger Arbeitsspeicher, CPU- Leistung und Speicherplatz – sind also deutlich leichtgewichtiger. In einem Container wird die Anwendung mit all ihren Bibliotheken und Einstellungen in einem Installationspaket zusammengefasst und kann so leicht installiert und isoliert von anderen Anwendungen auf dem gleichen System betreiben werden. Diese Eigenschaft passt perfekt zu Anwendungen, die im Microservice-Architekturansatz entwickelt werden. Dabei wird die Anwendung in kleinere Einheiten (Microservices) aufgeteilt, die jeweils einen Teilaspekt der Anwendung bereitstellen. In einem Container verpackt, lässt sich ein fehlerhafter Microservice viel unkomplizierter austauschen, als bei einer Anwendung mit monolithischem Aufbau.

Kubernetes:

An dieser Stelle kommt nun Kubernetes ins Spiel. Denn irgendjemand muss bei den ganzen Microservices ja den Überblick und das Steuer in der Hand behalten. Das Kubernetes Projekt wurde 2014 von Google als OpenSource-Projekt veröffentlicht. Der Name kommt aus dem Griechischen und bedeutet so viel wie Steuermann/ Pilot.  In Kurzform wird es auch oft als „k8s“ bezeichnet.

Unser Managed Kubernetes Service kommt also typischerweise beim Hosting von Anwendungen zum Einsatz, die im Microservice-Architekturansatz entwickelt werden. Hier realisiert Kubernetes die Automatisierung der Bereitstellung, Skalierung und Verwaltung der containerisierten Anwendungen. Es orchestriert die Cluster virtueller Maschinen und plant wann Container auf diesen ausgeführt werden sollen. Kubernetes verteilt die Services automatisch so intelligent über dem gesamten Cluster, dass die vorhandenen Ressourcen optimal ausgenutzt werden. Es koordiniert also die Computer-, Netzwerk- und Speicherinfrastruktur im Namen der Benutzer-Workloads.

Für ein neues Kubernetes-Projekt musst du anfangs festlegen, ob Dein Cluster hochverfügbar sein soll und wie viele Knoten Du benötigst. Mittels kubectl gibst Du dann an, welche Container wie oft und auf wie vielen Worker Nodes gestartet werden sollen. Du definierst also lediglich das Ziel und der Rest geht automatisch. Die Controlplane startet selbstständig innerhalb von kürzester Zeit alle Container auf den entsprechenden Worker Nodes samt den dafür notwendigen Loadbalancern. In der Folge überwacht die Control Plane ständig, ob Ist- und Soll-Zustand auf den Nodes übereinstimmen. Fällt einer aus, wird automatisch ein neuer Worker Node mit dem entsprechendem Pod, in dem der Container liegt, hochgefahren. Genauso verhält es sich auch bei geupdateten Containern. Werden bei  der gehosteten Anwendung Bugs behoben oder neue Features hinzugefügt, wird diese in einem neuen Container bereitgestellt. Das erkennt Kubernetes und testet den neuen Container auf seine Funktionalität. Ist diese gegeben, werden automatisch alle alten Container durch die neuen ausgetauscht. So können Entwickler Kubernetes komplett in ihre Entwicklungs-, CI und Deployment-Umgebung integrieren und sich eine Menge manueller Handgriffe sparen. Weiterhin kann mittels Autoscaling sichergestellt werden, dass beim Erreichen einer bestimmten Lastgrenze weitere zusätzliche Instanzen hinzu- und nach der Unterschreitung wieder abgeschaltet werden. Kubernetes sorgt also für eine flexible Anpassbarkeit in Echtzeit. Das vereinbart eine stets stabile Performance mit einer möglichst effizienten Kostenstruktur.

Der Managed-Part:

Die größte Herausforderung bei Kubernetes liegt in der Komplexität des eigentlichen Erstellens, Betriebs und Instandhaltens des Kubernetes Clusters. Und hier kommt die gute Nachricht für Dich: diese Aufgaben liegen komplett bei uns. Wir sorgen im Hintergrund permanent für Updates, Backups und eine stabile zugrunde liegende Infrastruktur. Diese besteht auch hier aus unserer OpenStack Umgebung, mittels derer alle notwendigen VMs, Loadbalancer etc. gestartet werden. Unsere Kunden können also sämtliche Annehmlichkeiten von Kubernetes nutzen, ohne sich um den Aufbau des nötigen Fachwissens zum Betrieb eines K8s-Clusters kümmern zu müssen.

Du bist neugierig geworden?

Dann geht es hier zu unserer Kubernetes Seite: https://nws.netways.de/de/kubernetes/

Hier findest du unsere Preisliste: https://nws.netways.de/de/preise/

Und hier findest Du Tutorials und Webinare zu Kubernetes: https://nws.netways.de/de/

Stefan Schneider
Stefan Schneider
Account Manager

Vor seiner Zeit bei NETWAYS hat Stefan als Projektmanager in einer Nürnberger Agentur dabei geholfen, Werbeprojekte auf die Straße zu bringen. Seit Juni 2017 ist er nun stolzes Mitglied der NETWAYS-Crew. Hier war er zuerst der Ansprechpartner für unserer Schulungen und kümmert sich aktuell um alle Anfragen rund um unser Hostingangebot. Die Freizeit vertreibt sich Stefan am liebsten mit Sport. Vom Joggen über Slacklining bis zum PennyBoard fahren ist er für alles zu haben.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Kubernetes

NWS-ID for your Managed Kubernetes!

First Cloud, now Kubernetes - the integration of NWS-ID with our portfolio continues! As a next step, we will merge your Managed Kubernetes clusters with NWS-ID. Credit goes to Justin for extending our cluster stack with OpenID-Connect (OIDC), the base for NWS-ID! How...