Kubernetes, die weltweit beliebteste Open-Source-Plattform zur Container-Orchestrierung, gilt als wichtiger Meilenstein in der Geschichte der cloudnativen Technologien. Kubernetes wurde intern bei Google entwickelt und 2014 der Öffentlichkeit zugänglich gemacht. Es ermöglicht Unternehmen, sich von der traditionellen IT-Infrastruktur zu verabschieden und operative Aufgaben im Zusammenhang mit der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen (oder Microservices) zu automatisieren. Kubernetes hat sich zwar zum De-facto-Standard für das Container-Management entwickelt, doch viele Unternehmen nutzen die Technologie auch für eine breitere Palette von Anwendungsfällen.
Container – leichte Softwareeinheiten, die Code und alle seine Abhängigkeiten so verpacken, dass sie in jeder Umgebung ausgeführt werden können – bilden die Grundlage von Kubernetes und sind für moderne Microservices, cloudnative Software und DevOps-Workflows entscheidend.
Docker war das erste Open-Source-Softwaretool, das die Erstellung, Bereitstellung und Verwaltung von containerisierten Anwendungen populär machte. Docker fehlte jedoch ein automatisiertes „Orchestrierungs“-Tool, was die Skalierung von Anwendungen für Data-Science-Teams zeitaufwendig und komplex machte. Kubernetes, auch als K8s bezeichnet, wurde speziell entwickelt, um diese Herausforderungen durch die Automatisierung der Verwaltung von containerisierten Anwendungen zu bewältigen.
Grob gesagt läuft die Kubernetes-Orchestrierungsplattform über Container mit Pods (Link befindet sich außerhalb von ibm.com) und Knoten. Ein Pod steuert einen oder mehrere Linux-Container und kann zur Skalierung und Fehlerresistenz mehrfach ausgeführt werden. Knoten führen die Pods aus und sind in der Regel in einem Kubernetes-Cluster zusammengefasst, wodurch die zugrunde liegenden physischen Hardwareressourcen abstrahiert werden.
Die deklarative, API-gesteuerte Infrastruktur von Kubernetes hat dazu beigetragen, DevOps und andere Teams von manuell gesteuerten Prozessen zu befreien, sodass sie unabhängiger und effizienter arbeiten können, um ihre Ziele zu erreichen. Im Jahr 2015 spendete Google Kubernetes als Basistechnologie an die Cloud Native Computing Foundation (CNCF) (Link befindet sich außerhalb von ibm.com), die Open-Source- und herstellerneutrale Drehscheibe für cloudnatives Computing.
Heute wird Kubernetes in der Produktion häufig zur Verwaltung von Docker und im Wesentlichen allen anderen Typen von Container-Laufzeitumgebungen eingesetzt. Docker enthält zwar ein eigenes Orchestrierungstool, das a genannt wird, die meisten Entwickler entscheiden sich jedoch stattdessen für die Kubernetes-Container-Orchestrierung.
Als Open-Source-System werden Kubernetes Services von allen führenden Public Cloud-Providern unterstützt, darunter IBM, Amazon Web Services (AWS), Microsoft Azure und Google. Kubernetes kann auch auf Bare Metal Servers und Virtual Machines (VMs) in Private Cloud-, Hybrid Cloud- und Edge-Umgebungen ausgeführt werden, vorausgesetzt, das Host-Betriebssystem ist eine Version von Linux oder Windows.
Hier finden Sie eine Übersicht der sechs wichtigsten Kubernetes-Anwendungsfälle, die zeigen, wie Kubernetes die IT-Infrastruktur verändert.
Stark frequentierte Websites und Anwendungen für Cloud Computing erhalten täglich Millionen von Nutzeranfragen. Ein entscheidender Vorteil der Verwendung von Kubernetes für die Bereitstellung großer Cloud-Apps ist die automatische Skalierung. Durch diesen Prozess können Anwendungen automatisch, schnell, effizient und mit minimalen Ausfallzeiten an Bedarfsänderungen angepasst werden. Wenn beispielsweise die Nachfrage schwankt, ermöglicht Kubernetes die kontinuierliche Ausführung von Anwendungen und die Reaktion auf Änderungen in den Web-Traffic-Mustern. Dadurch kann die richtige Menge an Workload-Ressourcen aufrechterhalten werden, ohne dass es zu einer Über- oder Unterversorgung mit Ressourcen kommt.
Kubernetes verwendet horizontale Pod-Autoskalierung (HPA) (Link befindet sich außerhalb von ibm.com), um einen Lastenausgleich (in Bezug auf die CPU-Nutzung oder benutzerdefinierte Metriken) durch Skalierung der Anzahl von Pod-Replikaten (Klone, die die automatische Fehlerbehebung erleichtern) im Zusammenhang mit einer bestimmten Bereitstellung durchzuführen. Dadurch werden potenzielle Probleme wie Datenverkehrsspitzen, Hardware-Probleme oder Netzwerkunterbrechungen gemildert.
Anmerkung: HPA ist nicht zu verwechseln mit Kubernetes Vertical Pod Autoscaling (VPA), das den Pods, die bereits für den Workload ausgeführt werden, zusätzliche Ressourcen wie Arbeitsspeicher oder CPU zuweist.
Branchen wie die Regierung, Wissenschaft, Finanzwesen und Technik sind stark auf High-Performance Computing (HPC) angewiesen, eine Technologie, die große Datenmengen verarbeitet, um komplexe Berechnungen durchzuführen. HPC verwendet leistungsstarke Prozessoren mit extrem hohen Geschwindigkeiten, um sofort datengesteuerte Entscheidungen zu treffen. Zu den realen Einsatzmöglichkeiten von HPC gehören die Automatisierung des Aktienhandels, Wettervorhersagen, DNA-Sequenzierung und Flugsimulationen.
HPC-intensive Branchen nutzen Kubernetes, um die Verteilung von HPC-Berechnungen in Hybrid- und Multicloud-Umgebungen zu verwalten. Kubernetes kann auch als flexibles Tool zur Unterstützung der Verarbeitung von Batch-Jobs im Zusammenhang mit Workloads für Hochleistungsrechnen dienen, wodurch die Portabilität von Daten und Code verbessert wird.
Der Aufbau und die Bereitstellung von Systemen für künstliche Intelligenz (KI) und maschinelles Lernen (ML) erfordert riesige Datenmengen und komplexe Prozesse wie Hochleistungsrechnen und Big-Data-Analyse. Die Bereitstellung von maschinellem Lernen auf Kubernetes erleichtert es Unternehmen, die Verwaltung und Skalierung von ML-Lebenszyklen zu automatisieren, und reduziert den Bedarf an manuellen Eingriffen.
So kann beispielsweise die Container-Orchestrierungsplattform Kubernetes Teile der KI- und ML-Workflows für die vorausschauende Wartung automatisieren, einschließlich Zustandsprüfungen und Ressourcenplanung. Und Kubernetes kann ML-Workloads nach oben oder unten skalieren, um den Anforderungen der Benutzer gerecht zu werden, die Ressourcennutzung anzupassen und die Kosten zu kontrollieren.
Maschinelles Lernen stützt sich auf große Sprachmodelle, um anspruchsvolle Verarbeitung natürlicher Sprache (NLP) wie Textklassifizierung, Stimmungsanalyse und maschinelle Übersetzung durchzuführen. Kubernetes beschleunigt die Bereitstellung großer Sprachmodelle, um den NLP-Prozess zu automatisieren. Da immer mehr Unternehmen auf generative KI-Funktionen setzen, nutzen sie Kubernetes, um generative KI-Modelle auszuführen und zu skalieren, und bieten so eine hohe Verfügbarkeit und Fehlertoleranz.
Insgesamt bietet Kubernetes die Flexibilität, Portabilität und Skalierbarkeit, die für das Trainieren, Testen, Planen und Bereitstellen von ML- und generativen KI-Modellen erforderlich ist.
Microservices (oder Microservice-Architektur) bieten einen modernen cloudnativen Architekturansatz, bei dem jede Anwendung aus zahlreichen lose verbundenen und unabhängig voneinander einsetzbaren kleineren Komponenten oder Diensten besteht. Beispielsweise bestehen große E-Commerce-Websites für den Einzelhandel aus vielen Microservices. Dazu gehören in der Regel ein Bestellservice, ein Zahlungsservice, ein Versandservice und ein Kundenservice. Jeder Dienst verfügt über eine eigene REST-API, über die die anderen Dienste mit ihm kommunizieren.
Kubernetes wurde entwickelt, um die Komplexität zu bewältigen, die mit der gleichzeitigen Verwaltung aller unabhängigen Komponenten innerhalb der Microservice-Architektur verbunden ist. So gewährleistet beispielsweise die in Kubernetes integrierte Funktion für hohe Verfügbarkeit (HA) einen kontinuierlichen Betrieb auch im Falle eines Ausfalls. Die automatische Fehlerbehebungsfunktion von Kubernetes wird aktiviert, wenn eine containerisierte App oder eine Anwendungskomponente ausfällt. Die automatische Fehlerbehebungsfunktion kann die App oder Anwendungskomponente sofort neu bereitstellen und an den gewünschten Zustand anpassen, was zur Aufrechterhaltung der Betriebszeit und Zuverlässigkeit beiträgt.
Kubernetes ist so konzipiert, dass es überall eingesetzt werden kann, und erleichtert Unternehmen die Migration von Anwendungen von lokalen zu Hybrid Cloud- und Multicloud-Umgebungen. Kubernetes standardisiert die Migration, indem es Softwareentwicklern integrierte Befehle für eine effektive App-Bereitstellung zur Verfügung stellt. Kubernetes kann auch Änderungen an Apps vornehmen und diese je nach Umgebungsanforderungen vergrößern oder verkleinern.
Kubernetes bietet Portabilität zwischen lokalen und Cloud-Umgebungen, da es Infrastrukturdetails von Anwendungen abstrahiert. Dadurch entfällt die Notwendigkeit plattformspezifischer App-Abhängigkeiten und es ist einfach, Anwendungen mit minimalem Aufwand zwischen verschiedenen Cloud-Providern oder Rechenzentren zu verschieben.
Für DevOps-Teams in Unternehmen ist die Fähigkeit, Anwendungen schnell zu aktualisieren und bereitzustellen, entscheidend für den Geschäftserfolg. Kubernetes bietet Teams sowohl die Entwicklung als auch die Wartung von Softwaresystemen, um die allgemeine Agilität zu verbessern. Und die Kubernetes-API-Schnittstelle ermöglicht es Softwareentwicklern und anderen DevOps-Stakeholdern, ihre Container-Ökosysteme einfach anzuzeigen, darauf zuzugreifen, sie bereitzustellen, zu aktualisieren und zu optimieren.
CI/CD – was für Continuous Integration (CI) und Continuous Delivery (CD) steht – ist zu einem zentralen Aspekt der Softwareentwicklung geworden. In DevOps optimiert CI/CD die Codierung, das Testen und Bereitstellen von Anwendungen, indem es Teams ein einziges Repository für die Speicherung von Arbeits- und Automatisierungstools zur Verfügung stellt, um den Code konsistent zu kombinieren und zu testen und sicherzustellen, dass er funktioniert. Kubernetes spielt eine wichtige Rolle in cloudnativen CI/CD-Pipelines, indem es die Bereitstellung von Containern in Cloud-Infrastrukturumgebungen automatisiert und eine effiziente Nutzung der Ressourcen gewährleistet.
Kubernetes spielt eine entscheidende Rolle in der IT-Infrastruktur, wie sich an den vielen wertorientierten Anwendungsfällen zeigt, die über die Container-Orchestrierung hinausgehen. Aus diesem Grund implementieren so viele Unternehmen weiterhin Kubernetes. In einer 2021 von der CNCF durchgeführten Cloud Native Survey (Link befindet sich außerhalb von ibm.com) wird gezeigt, dass die Nutzung von Kubernetes ihren bisher höchsten Stand erreicht hat. 96 % der Unternehmen nutzen oder evaluieren die containerbasierte Plattform. Laut derselben Studie nimmt die Nutzung von Kubernetes in aufstrebenden Technologieregionen wie Afrika weiter zu, wo 73 % der Befragten Kubernetes in der Produktion nutzen.
Kubernetes plant und automatisiert Aufgaben, die für die Verwaltung containerbasierter Architekturen unerlässlich sind, einschließlich Containerbereitstellung, Updates, Service-Erkennung, Speicherbereitstellung, Lastausgleich, Zustandsüberwachung und mehr. Bei IBM unterstützen wir unsere Kunden bei der Modernisierung ihrer Anwendungen und der Optimierung ihrer IT-Infrastruktur mit Kubernetes und anderen cloudnativen Lösungen.
Stellen Sie sichere, hochverfügbare Cluster in einer nativen Kubernetes-Umgebung mit IBM Cloud Kubernetes Service bereit.
Containerisieren und implementieren Sie Kubernetes-Cluster für containerbasierte Plattformen mit Red Hat OpenShift on IBM Cloud.