Michael Gasch VMware

Kubernetes bietet zahlreiche Stellschrauben zum Ressourcenmanagement für Anwendungen in kleinen und großen Clustern. Basierend auf langjähriger Erfahrung der Kubernetes-Gründerväter im Clustermanagement sind wichtigste und wirkungsvolle Primitiven bereits von Anfang an im Orchestrator enthalten.

Kubernetes ist viel mehr als nur ein Orchestrierungswerkzeug für Container. Es ist ein Rechenzentrumskernel zum Aufbau verteilter Architekturen – ganz gleich, ob in der privaten oder der public Cloud. Diese mehrteilige Artikelserie erläutert beispielhaft und basierend auf mehrjähriger Praxiserfahrung des Autors, welche Primitiven Kubernetes zur Ressourcensteuerung (wie CPU und Hauptspeicher) sowie der Einhaltung von Service-Leveln (Quality of Service) für die unterschiedlichsten Arbeitslasten bereitstellt.

Die Informatik ist über die Jahrzehnte geprägt von immer neuen Abstraktionsschichten. Implementierungsdetails der darunterliegenden Schichten werden hinter Schnittstellen (APIs) verborgen, um immer komplexer werdende Systeme zu erschaffen. So übersetzen Compiler höhere Programmiersprachen in maschinenspezifischen Code, Hypervisoren abstrahieren unterschiedliche Plattformen in standardisierte virtuelle Hardware, und Docker und Co. vermitteln die Illusion, die Anwendung im Container hätte das Betriebssystem ganz für sich allein. Serverless Computing und Functions-as-a-Service sind nur ein weiterer Schritt hin zur fortwährenden Abstraktion.

Kubernetes als Container Orchestrator und Distributed Systems Kernel, mit dem einzelne Maschinen zu einer großen Recheneinheit zusammenfasst werden, bildet dabei natürlich keine Ausnahme. Und dabei wirkt es schon fast wie Magie, dass heutige IT-Systeme bei dieser für einen einzelnen Menschen undurchschaubaren Komplexität überhaupt funktionieren. Meistens zumindest. Denn schaut man sich einige Erfahrungsberichte langjähriger Kubernetes-Nutzer an, wird aus vermeintlicher Magie schnell harte Realität. Doch nicht nur Ausfälle sollten der Anlass sein, warum man einen Blick unter die Kubernetes-Haube wirft. Es gibt zahlreiche Stellschrauben, um die Stabilität, Performanz und Effizienz des Systems respektive der darauf laufenden Anwendungen zu erhöhen. Zudem gibt es immer wieder Veränderungen am Kern von Kubernetes, die direkte Auswirkungen auf den Betrieb haben. Vorträge über Googles Cluster Manager „Borg“, die Blaupause für Kubernetes, lassen bereits erahnen, dass das Ende der Fahnenstange noch lange nicht erreicht ist. Ein Verständnis der wichtigsten Details hilft also, besser auf zukünftige Anpassungen vorbereitet zu sein.

Vom Server zum Rechenzentrum

Der erste Teil dieser Serie zum Ressourcenmanagement mit Kubernetes erläuterte das Zusammenspiel von Containern und dem Linux-Kernel auf Serverebene, und welche Fallstricke dabei lauern. In diesem Folgeartikel bauen wir auf dem Gelernten auf und begeben uns auf die nächsthöhere Abstraktionsschicht – den Kubernetes-Cluster. In der aktuell getesteten Version v1.11 unterstützt Kubernetes bis zu 5 000 Knoten im Cluster. Ein Cluster kann also gut und gern mit einem größeren Rechenzentrum gleichgesetzt werden.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 6.18 - "GraphQL"

Alle Infos zum Heft
579861558Deep Dive Kubernetes-Ressourcenmanagement
X
- Gib Deinen Standort ein -
- or -