Was ist Containerorchestrierung?

Veröffentlicht 22. Oktober 2024
Mehrere türkisfarbene Raketen sind diagonal auf hellgrünem Hintergrund angeordnet und werfen jeweils einen sanften Schatten
By Stephanie Susnjara and Ian Smalley

Container-Orchestrierung definiert

Die Container-Orchestrierung sorgt für die automatische Bereitstellung, das Deployment, die Skalierung und die Verwaltung des Lebenszyklus von containerisierten Anwendungen. Entwickler nutzen die Container-Orchestrierung, um agile oder DevOps-Workflows zu optimieren und die Flexibilität und Geschwindigkeit zu erreichen, die zur Unterstützung moderner hybrider Multicloud-Umgebungen erforderlich sind.

Heute ist Kubernetes die beliebteste Plattform für die Container-Orchestrierung, und die meisten führenden Cloud-Service-Anbieter – darunter Amazon Web Services (AWS), Google Cloud Platform, IBM Cloud und Microsoft Azure – bieten verwaltete Kubernetes Services an. Weitere Tools zur Containerorchestrierung sind Docker Swarm und Apache Mesos.

Warum benötigen Container Orchestrierung?

Container sind schlanke, ausführbare Anwendungskomponenten, die den Anwendungsquellcode mit allen Betriebssystembibliotheken und Abhängigkeiten kombinieren, die für die Ausführung des Codes in der Umgebung erforderlich sind. 

Die Möglichkeit, Container zu erstellen, existiert schon seit Jahrzehnten, wurde aber 2008 allgemein verfügbar, als Linux® Container-Funktionen in seinen Kernel integrierte. Sie wurde noch wichtiger nach der Einführung der Open-Source-Containerisierungsplattform Docker im Jahr 2013. (Docker ist so beliebt, dass „Docker-Container“ und „Container“ oft synonym verwendet werden.) Heute sind Container mit vielen anderen Betriebssystemen neben Linux kompatibel, einschließlich Windows.

Da sie kleiner, ressourceneffizienter und portierbarer als Virtual Machines (VMs) sind, wurden Container – genauer gesagt containerisierte Microservices oder serverlose Funktionen – zu den De-facto-Recheneinheiten moderner cloudnativer Anwendungen.

 

In kleiner Anzahl können Container problemlos manuell bereitgestellt und verwaltet werden. Allerdings sind containerisierte Anwendungen und die Notwendigkeit, sie in großem Umfang zu verwalten, in den meisten großen Unternehmen allgegenwärtig.

Beispielsweise ist eine kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD) oder eine DevOps-Pipeline ohne Container-Orchestrierung, die operativen Aufgaben im Zusammenhang mit der Bereitstellung und Ausführung von containerisierten Anwendungen und Services automatisiert, nicht möglich.

In einer IBM-Studie gaben 70 % der befragten Entwickler an, dass sie Container-Orchestrierungslösungen verwenden, und 70 % derjenigen, die eine Lösung verwenden, geben an, dass sie einen vollständig verwalteten (cloudverwalteten) Container-Orchestrierungsservice in ihrem Unternehmen einsetzen.

Wie funktioniert die Containerorchestrierung?

Die Container-Orchestrierungsarchitektur besteht aus der Ausführung von Container-Clustern auf mehreren Maschinen und in mehreren Umgebungen. Jeder Cluster besteht normalerweise aus einer Gruppe von Knoten (auch Serverinstanzen genannt). Worker-Knoten führen Container mithilfe von Container-Laufzeiten (wie Docker) aus. Eine Gruppe von Control-Plane-Knoten fungiert als Orchestrator des Clusters. Benutzer können containerisierte Workloads mit Tools verwalten und überwachen, die Funktionen mit Programmierschnittstellen (APIs) und grafischen Benutzeroberflächen (GUIs) verfügen.

Es gibt zwar Unterschiede in den Methoden und Funktionen der verschiedenen Plattformen und Tools, aber die Containerorchestrierung ist im Wesentlichen ein dreistufiger Prozess (oder Zyklus, wenn er Teil einer iterativen agilen oder DevOps-Pipeline ist):

  1. Bereitstellung
  2. Bereitstellung
  3. Lebenszyklusmanagement

1. Provisionierung

Die meisten Container-Orchestrierungstools unterstützen ein deklaratives Konfigurationsmodell. Ein Entwickler schreibt eine Konfigurationsdatei (je nach Tool in YAML oder JSON), die einen gewünschten Zustand definiert. Das Orchestrierungstool, das die Datei ausführt, verwendet seine eigene Intelligenz, um diesen Zustand zu erreichen. Eine Konfigurationsdatei erfüllt normalerweise folgende Aufgaben:

  • Definieren Sie, aus welchen Container-Images die Anwendung besteht und wo (in welcher Container-Registry) sie sich befinden.
  • Versorgung der Container mit Speicher und anderen Ressourcen.
  • Definition und Schutz der Netzverbindungen zwischen Containern.
  • Festlegung der Versionierung (für Stufen- oder Canary-Rollouts).

2. Bereitstellung

Das Orchestrierungstool plant die Bereitstellung der Container (und Replikate der Container aus Gründen der Resilienz) auf einem Host. Es wählt den besten Host basierend auf der verfügbaren Zentraleinheiten (CPU)-Kapazität, dem Speicher oder anderen Anforderungen oder Einschränkungen aus, die in der Konfigurationsdatei angegeben sind.

3. Lebenszyklusmanagement

Sobald die Container bereitgestellt sind, verwaltet das Orchestrierungstool den Lebenszyklus der containerisierten Anwendung basierend auf der Container-Definitionsdatei (häufig eine Docker-Datei).

Zu den Aufgaben des Lebenszyklusmanagements gehören:

  • Verwaltung der Skalierbarkeit (nach oben und unten), des Lastausgleichs und der Ressourcenzuordnung zwischen den Containern.
  • Sicherstellung von Verfügbarkeit und Leistung durch Verlagerung der Container auf einen anderen Host im Falle eines Ausfalls oder fehlender Systemressourcen.
  • Sammeln und Speichern von Protokolldaten und anderen Telemetriedaten zur Überwachung des Zustands und der Leistung der Anwendung.

Sehen Sie sich dieses Video an, um einen genaueren Blick auf die Funktionsweise der Container-Orchestrierung zu werfen:

Vorteile der Containerorchestrierung

Zu den wichtigsten Vorteilen der Container-Orchestrierung gehören:

  • Automatisierung
  • Ausfallsicherheit
  • Verbesserte Ressourcennutzung und Leistung
  • Kosteneffizienz
  • Geschwindigkeit und Agilität
  • Verbesserte Sicherheit
  • Steigerung der Produktivität

Automatisierung

Der Hauptvorteil der Container-Orchestrierung ist die Automatisierung, die den manuellen Aufwand und die Komplexität bei der Verwaltung einer umfangreichen containerisierten Anwendungssammlung erheblich reduziert.

Ausfallsicherheit

Container-Orchestrierungslösungen verbessern die Ausfallsicherheit, indem sie Container bei Ausfall neu starten oder skalieren. Diese Funktion trägt dazu bei, die Verfügbarkeit zu gewährleisten und die Betriebszeit der Anwendung zu erhöhen.

Verbesserte Ressourcennutzung und Leistung

Durch automatisierte Hostauswahl und Ressourcenzuweisung kann die effiziente Nutzung von Computing-Ressourcen maximiert werden. So kann eine Container-Orchestrierungslösung beispielsweise den CPU-Arbeitsspeicher und den Speicher auf der Grundlage eines einzelnen Containers anpassen, was eine Überbereitstellung verhindert und die Gesamtleistung verbessert.

Kosteneffizienz

Durch die Container-Orchestrierung entfällt die Notwendigkeit manueller Eingriffe, wodurch die Betriebskosten gesenkt werden. Darüber hinaus benötigen Container weniger Ressourcen als VMs, wodurch der Bedarf an IT-Infrastruktur und die Gemeinkosten gesenkt werden können.

Schnelligkeit und Agilität

Tools zur Container-Orchestrierung beschleunigen die Entwicklung und Bereitstellung von Anwendungen und bieten wichtige Unterstützung für moderne cloudnative Prozesse.

Verbesserte Sicherheit

Container verbessern die Sicherheit, indem sie Anwendungen vom Hostsystem und voneinander isolieren und so die Angriffsfläche verringern. Viele Plattformen verfügen über automatische Scans zur Erkennung von Schwachstellen und sicheren Bildregistrierungen, die den Gesamtschutz verbessern.

Steigerung der Produktivität

Durch die Automatisierung von Abläufen unterstützt die Containerorchestrierung einen flexiblen oder DevOps-Ansatz. Dies ermöglicht es den Teams, in schnellen, iterativen Zyklen neue Funktionen und Funktionalitäten schneller zu entwickeln und bereitzustellen.

IBM DevOps

Was ist DevOps?

Andrea Crawford erklärt, was DevOps ist, welchen Wert DevOps hat und wie DevOps-Praktiken und -Tools Ihnen dabei helfen, Ihre Anwendungen durch die gesamte Delivery Pipeline der Softwareentwicklung von der Idee bis zur Produktion zu bringen. Das von führenden IBM Experten geleitete Programm soll Führungskräften das nötige Wissen vermitteln, um Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

Vorteile der Verwendung von Kubernetes

Von Google entwickelt und 2014 veröffentlicht, wurde Kubernetes zu einem der am schnellsten wachsenden Projekte in der Geschichte der Open Source Software. Kubernetes wird derzeit von der Cloud Native Computing Foundation (CNCF) verwaltet. Seit Kubernetes 2016 der CNCF beigetreten ist, ist die Zahl der Mitwirkenden von 731 auf 8.012 gestiegen.1

Zusammen mit anderen Container-Ökosystem-Tools ermöglicht Kubernetes einem Unternehmen, eine hochproduktive Plattform als Service (PaaS) bereitzustellen. Dieses Cloud Computing-Modell befasst sich mit vielen infrastruktur- und betriebsbezogenen Aufgaben und Problemen im Zusammenhang mit der Entwicklung von cloudnativen Anwendungen, damit sich die Entwicklungsteams ausschließlich auf die Programmierung und Innovation konzentrieren können.

 

Die Vorteile von Kubernetes gegenüber anderen Orchestrierungslösungen ergeben sich vor allem aus den umfassenderen und fortgeschrittenen Funktionen in verschiedenen Bereichen:

  • Containerbereitstellung
  • Rollouts
  • Serviceerkennung
  • Speicherbereitstellung
  • Lastausgleich und Skalierbarkeit
  • Automatische Fehlerbehebung für hohe Verfügbarkeit
  • Unterstützung und Portabilität für mehrere Cloud-Anbieter
  • Open-Source-Ökosystem

Containerbereitstellung

Kubernetes stellt eine bestimmte Anzahl von Containern auf einem bestimmten Host bereit und führt diese im gewünschten Zustand aus.

Rollouts

Ein Rollout ist eine Änderung an einer Bereitstellung. Mit Kubernetes können Entwickler Rollouts initialisieren, anhalten, fortsetzen oder zurücksetzen.

Serviceerkennung

Kubernetes kann einen Container automatisch dem Internet oder anderen Containern zugänglich machen, indem es einen Domain Name System (DNS)-Namen oder eine IP-Adresse verwendet, um Services zu finden.

Speicherbereitstellung

Entwickler können Kubernetes so einstellen, dass es je nach Bedarf persistenten lokalen oder Cloud-Speicher für ihre Container einbindet.

Lastausgleich und Skalierbarkeit

Wenn der Datenverkehr zu einem Container in die Höhe schnellt, kann Kubernetes Lastausgleich und Autoskalierung einsetzen, um den Datenverkehr über das Netzwerk zu verteilen und für Stabilität und Leistung zu sorgen. Diese Fähigkeit erspart den Entwicklern auch die Arbeit, einen Lastausgleich einzurichten.

Automatische Fehlerbehebung für hohe Verfügbarkeit

Wenn ein Container ausfällt, kann Kubernetes ihn automatisch neu starten oder ersetzen. Container, die den Anforderungen der Zustandsprüfung nicht entsprechen, können damit auch entfernt werden.

Unterstützung und Portierbarkeit für mehrere Cloud-Provider

Kubernetes erfreut sich breiter Unterstützung bei allen führenden Cloud-Providern. Diese Funktion ist unerlässlich für Unternehmen, die Anwendungen in eine Hybrid Cloud (die Kombination aus Public Cloud, Private Cloud und lokaler Infrastruktur) oder Multicloud (die Nutzung von Cloud-Services von mehreren Cloud-Anbietern) bereitstellen.

Open-Source-Ökosystem

Kubernetes verfügt außerdem über ein stetig wachsendes Portfolio von Tools zur Verbesserung von Bedienungskomfort und Netzbetrieb, um seine Funktionalität über die Kubernetes-API zu erweitern. Dazu gehören ISTIO, das Container als Serverlos-Workloads ausführen lässt, und Knative, ein Open-Source-Service-Mesh.

Was ist Container as a Service (CaaS)?

Container-as-a-Service (CaaS) ist ein verwalteter Service, der es Entwicklern ermöglicht, containerisierte Anwendungen zu verwalten und bereitzustellen, und der Unternehmen Zugang zu portablen, leicht skalierbaren Cloud-Lösungen bietet. Im Jahr 2022 wurde der globale CaaS-Markt auf fast 2 Milliarden US-Dollar geschätzt.2 Forscher gehen davon aus, dass der Markt bis 2027 mehr als 7 Milliarden US-Dollar wert sein wird, mit einer durchschnittlichen jährlichen Wachstumsrate von 30,2 % in diesem Zeitraum.

CaaS-Anbieter bieten Unternehmen viele Vorteile, darunter Container-Laufzeiten, Orchestrierungsschichten, persistente Speicherverwaltung und Integration mit anderen Diensten. Viele führende öffentliche Anbieter bieten Managed Services für die Container-Orchestrierung an, von denen viele Kubernetes als zugrunde liegende Technologie verwenden.

Zu den Top-CaaS-Anbietern gehören:

  • Amazon Elastic Container Service (Amazon ECS) von AWS
  • Die Google Kubernetes Engine (GKE) von Google Cloud
  • IBM Cloud Kubernetes Service
  • Microsoft Azure Container Instances (ACI)
  • Red Hat OpenShift

Containerorchestrierung und KI

Containerisierte Orchestrierungsplattformen wie Kubernetes können Teile der Künstlichen Intelligenz (KI) und des Maschinellen Lernens (ML) automatisieren, z. B. Workflows für die vorausschauende Wartung (einschließlich Echtzeit-Zustandsprüfung und Ressourcenplanung).

Maschinelles Lernen stützt sich auf große Sprachmodelle (LLMs), um eine Verarbeitung natürlicher Sprache (NLP) auf hohem Niveau durchzuführen, z. B. Textklassifizierung, Stimmungsanalyse und maschinelle Übersetzung. Container-Orchestrierung beschleunigt die Bereitstellung großer Sprachmodelle (LLMs) zur Automatisierung des NLP-Prozesses. Darüber hinaus nutzen Organisationen Container-Orchestrierung, um generative KI-Modelle auszuführen und zu skalieren, was für hohe Verfügbarkeit und Fehlertoleranz sorgt.

Autoren

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Verwandte Lösungen
IBM Instana Observability

Nutzen Sie die Leistungsfähigkeit von KI und Automatisierung, um Probleme im gesamten Anwendungs-Stack proaktiv zu lösen.

IBM Instana Observability kennenlernen
DevOps-Lösungen

Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.

DevOps-Lösungen erkunden
Cloud-Beratungsleistungen

Geschäftsagilität und -wachstum beschleunigen: Modernisieren Sie Ihre Anwendungen mit unseren Cloud-Consulting-Services durchgehend auf jeder Plattform.

Erkunden Sie Cloud-Beratungsleistungen
Machen Sie den nächsten Schritt

Von proaktiver Erkennung mit IBM Instana bis hin zu Echtzeit-Erkenntnissen in Ihrem Stack können Sie cloudnative Anwendungen zuverlässig am Laufen halten.

  1. IBM Instana entdecken
  2. DevOps-Lösungen erkunden
Fußnoten

Kubernetes Project Journey Report, Cloud Native Computing Foundation, 8. Juni 2023.

Containers as a Service Market worth USD 5.6 billion by 2027 - Exclusive Study by MarketsandMarkets, Cision, 30. November 2022.

3 Container as a Service Global Market Report 2023, Yahoo Finance, 1. Juni 2023.