Kubernetes – Dirigent des Container-Orchesters
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.
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.
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.
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
- Auch im Notfall: So läuft der IT-Betrieb stabil weiter
- Fünf Tipps: So klappt der IT-Betrieb im Colocation-Datacenter
- Die Sicherheit des Rechenzentrums beginnt vor der Tür