Kubernetes – Dirigent des Container-Orchesters

Gabelstapler transportiert Container

Anwendungspakete, sogenannte Container, sind aus der IT nicht mehr wegzudenken. Sie richtig zu orchestrieren, ist eine der Hauptaufgaben der Plattform Kubernetes. ©Sasin Tipchai / Getty Images

Container-Lösungen wie Docker ermöglichen es, Anwendungen für die verschiedensten Server-Umgebungen wesentlich schneller und einfacher bereitzustellen. Um diese Container effizient zu orchestrieren und zu steuern, hat sich die Kubernetes-Plattform als Werkzeug etabliert. Ob in der Cloud oder On-Premises, ob auf einem Entwicklungs- oder Produktivsystem: Die Anwendungspakete laufen überall. Unternehmen können Kubernetes auch als Managed Service nutzen.

Container sind aus der IT nicht mehr wegzudenken. Dank der praktischen Container lassen sich Anwendungen überall dort einsetzen, wo sie in einem Unternehmen benötigt werden. Dafür sorgen Lösungen wie Docker, die alle erforderlichen Komponenten sowohl für die Anwendung als auch für ihre Ausführung in einer einzigen Datei verpacken. Dazu gehören etwa Konfigurationsdateien und Funktionsbibliotheken. Damit stellen Container die komplette Laufzeitumgebung in einem Paket bereit – und machen die Applikation somit unabhängig von der Server-Umgebung, auf der sie laufen soll.

 

Flexibel skalierbare Anwendungsinfrastruktur

So können beispielsweise Entwickler eine Anwendung einfach von einer Test- in eine Betriebsumgebung verschieben – und wieder zurück. Ebenso lassen sich Applikationen auf eigener Hardware betreiben und anschließend in einer Private, Public oder Hybrid Cloud einsetzen. Der große Vorteil für Unternehmen: Sie können auf diese Weise die Bereitstellung komplexer Anwendungen vereinfachen, die auf verschiedenen Servern laufen. Zudem wird die Anwendungsinfrastruktur deutlich flexibler, da Unternehmen sie schneller ändern, erweitern und skalieren können.

Sprechen Sie Kubernetes? Ein kleines Wörterbuch 1

  • Container: Enthält Anwendungen und alle zu ihrer Ausführung erforderlichen Dateien – also die komplette Laufzeitumgebung – in einem Paket, das sich auf verschiedene Server-Umgebungen verschieben lässt.
  • Pod: Diese kleinste Einheit in der Kubernetes-Architektur versammelt Container, die für eine Applikation zusammenarbeiten. Durch Pods lassen sich Netzwerk und Storage von Containern abstrahieren, so dass diese leicht verschoben werden können.
  • Node: Ein Pod oder mehrere Pods laufen auf einem Node, der eine virtuelle oder eine physische Maschine sein kann und als „Slave“ die vom „Master“ zugewiesenen Aufgaben ausführt.
  • Cluster: Fasst mehrere Nodes zusammen – ähnlich wie Computer, die zu einem Rechnerverbund geclustert werden.

 

Effizientes Management der Container

Je mehr dieser Container zum Einsatz kommen, desto wichtiger wird ihre Verwaltung und Steuerung. In einer Produktionsumgebung mit verschiedenen skalierenden Anwendungen wächst die Anzahl an Containern kontinuierlich, und damit auch ihre Komplexität. Hier schlägt die Stunde der Open Source Software Kubernetes – die Plattform gilt als Platzhirsch unter den Container-Orchestrierungs-Systemen, zu denen auch Docker Swarm, Meso und Diego zählen. Kubernetes unterstützt diverse Container-Engines wie Docker und lässt sich auf fast jeder gängigen Plattform betreiben, wie zum Beispiel auf Azure und AWS. Mit Kubernetes können Entwickler und Administratoren Betrieb, Wartung und Skalierung von Container-basierten Anwendungen vereinfachen und automatisieren.

Master-Slave-Architektur

Wie macht Kubernetes das? Innerhalb der hierarchischen Master-Slave-Architektur der Orchestrierungsplattform ist der so genannte Pod die kleinste Einheit (siehe auch Kasten „Sprechen Sie Kubernetes?“). In einem Pod werden mehrere Container zusammengefasst, die sich IP-Adresse, Hostname und andere Ressourcen teilen. Pods laufen auf so genannten Nodes, bei denen es sich um virtuelle oder physische Systeme handeln kann. Mehrere Nodes wiederum lassen sich in einem Cluster zusammenfassen. Dies bietet vor allem bei der App-Entwicklung große Vorteile: Die Cluster können Hosts in Public, Private oder Hybrid Clouds haben und lassen sich schnell skalieren.

Auch im Betrieb von Infrastrukturen wie etwa Storage-Systemen kommt Kubernetes immer öfter zum Einsatz. So wird etwa in einem Software-Defined-Storage-System aus jedem Node des Speichers ein Node im Kubernetes-Cluster.

Wer aber dirigiert Pods, Nodes und Cluster? Hier kommt der so genannte Kubernetes-Master ins Spiel. Er erhält Befehle des Administrators oder Entwicklers und steuert dementsprechend die Nodes mit ihren Pods und Containern, indem er Pods Aufgaben und die dafür nötigen Ressourcen wie Speicher und Netzwerk zuweist. Wesentlich für die Arbeit des Masters ist der API-Server, der über eine REST-Schnittstelle mit allen externen und internen Diensten und sonstigen Komponenten kommuniziert. Des Weiteren nutzt der API-Server die Key-Value-Datenbank etcd, in der Konfigurationsdaten gespeichert werden, als persistenten Speicher.

 

Sprechen Sie Kubernetes? Ein kleines Wörterbuch 2

  • Master: Server, der verwaltet, kontrolliert und etwa Pods auf Nodes verteilt. Weist Aufgaben an und teilt die dafür benötigten Ressourcen zu.
  • Replication Controller: Dieses Tool läuft auf dem Master und kontrolliert, dass immer die vorgesehene Zahl von Kopien eines Pods auf einem Cluster in Betrieb ist.
  • Kubelet: Läuft auf den Nodes und sorgt zum einen dafür, definierte Container zu starten. Zum anderen erfasst und sammelt Kubelet kontinuierlich den Status der Container für den Master.
  • Kubectl: Befehlszeilen-Konfigurationstool für Entwickler und Administrator.

Beispiel Google-Suche

Vorreiter in der Entwicklung der Kubernetes-Technologie ist Google, dessen interne Plattform Borg zu den Vorläufern der Open-Source-Lösung Kubernetes zählt. Welche praktischen Anwendungsmöglichkeiten Kubernetes bietet, lässt sich anhand der Google-Suche gut verdeutlichen, die täglich von Milliarden Menschen weltweit genutzt wird:

Gäbe es keine orchestrierten Container, müsste Google dafür riesige Rechenressourcen auf Vorrat bereitstellen. Mit Kubernetes-gesteuerten Containern hingegen lässt sich die Rechenleistung optimiert einsetzen. Je nach Suchvolumen können zusätzliche Container gestartet oder bereits laufende gestoppt werden – Kubernetes findet Server mit verfügbaren Kapazitäten und gibt deren Rechenleistung nach Abschluss der Suche automatisch wieder frei. Fällt ein Server aus, sorgt Kubernetes dafür, dass die darauf laufenden Container auf andere Server verschoben werden. Auf diese Weise vereinfacht und beschleunigt die Orchestrierungsplattform die Abarbeitung von Aufgaben, die an Applikationen gestellt werden.

 

Umfangreiches Leistungsspektrum

Kubernetes wartet mit zahlreichen weiteren Funktionen auf. Dazu zählen vor allem:

  • Automatisierte Einrichtung von Containern und automatisierter Rollout
  • Berücksichtigung der Anforderungen an Speicherplatz, Rechenleistung und Netzwerk
  • Bereitstellung von persistentem Storage
  • Automatische Skalierung des Containerbetriebs
  • Automatische Verteilung von Workloads
  • Bereitstellung von Redundanzen für hoch verfügbare Anwendungen
  • Steuerung und Automatisierung von Anwendungsbereitstellung und -aktualisierung.

So bietet Kubernetes Unternehmen vom Startup bis zum Großkonzern eine schnellere Entwicklung, die direkt mit dem Betrieb verzahnt ist, sowie ein vereinfachtes Deployment.

 

Microservices statt Monolith

Mithilfe von Kubernetes lassen sich auch die großen Software-Monolithen aus der Zeit vor dem Aufkommen von Cloud Computing ablösen, die nur auf einem System lauffähig sind. An ihre Stelle treten Applikationen mit vielen kleinen Microservices, die über den API-Server von Kubernetes gemanagt werden.

Die Orchestrierungsplattform stellt Mechanismen bereit, um den Überblick über die verteilten Services zu behalten und Workloads schnell zu starten und zu stoppen. Als wesentliche Ergänzung zu Kubernetes kommt ein so genannter Service Mesh zum Einsatz: Dabei handelt es sich um eine direkt in die jeweilige Anwendung integrierte Infrastrukturschicht, die kontrolliert und dokumentiert, wie die unterschiedlichen Teile einer Anwendung interagieren und Daten untereinander austauschen.

 

Die Vorteile von Kubernetes

  • Mehr Agilität bei Entwicklung, Test und Deployment
  • Optimierte Nutzung von Ressourcen und Maschinen
  • Manuelle Prozesse und Arbeitssschritte werden automatisiert
  • Schnellerer Rollout neuer Funktionen und Services
  • Rolling Update: Service bleibt während Update verfügbar
  • Hohe Ausfallsicherheit, schnelle und einfache Skalierung
  • Plattformunabhängigkeit sichert hohe Reproduzierbarkeit und einfachen Transfer von Anwendungen
  • Potenziale von Private, Public und Hybrid Cloud nutzbar: Kubernetes lässt sich auf allen gängigen Cloud-Plattformen betreiben

Managed Kubernetes mit Service Provider

So komfortabel die praktische Arbeit mit Kubernetes ist, bergen Aufbau, Betrieb und Wartung von Kubernetes-Clustern doch gewisse Herausforderungen. Es gilt, unterschiedliche Komponenten und Services hoch verfügbar einzusetzen, zu skalieren und passgenau mit den richtigen Ressourcen auszustatten. Dies erfordert Wissen und Erfahrung im Umgang mit der Technologie – was angesichts des Fachkräftemangels dafür spricht, Kubernetes „as a Service“ bei einem Service-Provider zu buchen, statt es im Eigenbetrieb aufzusetzen. Hinzu kommt: Kubernetes ist eine Open-Source-Technologie, für die keine institutionalisierten Support-Strukturen existieren.

Weitere nicht zu unterschätzende Argumente für Managed Kubernetes sind Sicherheit und Verfügbarkeit, die ein Betreiber von Rechenzentren bieten kann. Wer Kubernetes als hochverfügbaren Dienst aus einem Rechenzentrum bezieht, muss sich nicht um Hardware, Wartung und Updates kümmern und reduziert so die Komplexität der Nutzung. Darüber hinaus sichert der Betreiber den Datenverkehr mit allen verfügbaren Maßnahmen wie etwa DDoS-Schutz ab und betreibt seine Infrastrukturen in hochgesicherten Gebäuden. So bietet Kubernetes als Dienst aus dem Rechenzentrum Kunden eine sichere Alternative, um die Möglichkeiten der Container-Orchestrierungsplattform kennenzulernen und zu nutzen.

QSC wird seine Kunden künftig bei Aufbau und Administration von Kubernetes-Clustern unterstützen und einen entsprechenden Managed Service anbieten. Damit werden Anwender unter anderem die Möglichkeit erhalten, „Slave“-Nodes in ihrem eigenen Unternehmen On-Premises zu betreiben, während die Master-Komponenten der Kubernetes-Architektur im Rechenzentrum von QSC verbleiben. Über ein Kunden-Interface lassen sich Anwendungen genau dorthin verschieben, wo sie im Unternehmen beziehungsweise auf dem Betriebsgelände benötigt werden – beispielsweise für Barcode-Scanner im Lager, wobei die Nodes an das Bussystem der Lagerverwaltung angebunden werden können, oder zur Überwachung von Produktionsmaschinen in verschiedenen Werkhallen. Auch die hierbei anfallenden Daten lassen sich direkt vor Ort verarbeiten und müssen nicht in die Cloud zurückgespielt werden – so verbinden sich die Arbeitsweisen von Kubernetes und Edge Computing zum Vorteil der Anwender.

 

Weitere Beiträge zum Thema Colocation

  • mitteilen 
  • teilen 
  • teilen 
  • email hidden; JavaScript is required
Drucken

Schreibe einen Kommentar

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

*

Um die Diskussionsqualität zu wahren, veröffentlichen wir nur noch Kommentare mit nachvollziehbarem Vor- und Nachnamen sowie authentischer E-Mail-Adresse. Bitte beachten Sie zudem unsere Social Media Guidelines.