Was ist Containerorchestrierung?

 22. Oktober 2024

Autoren

Ian Smalley

Senior Editorial Strategist

Was ist Containerorchestrierung?

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.

Luftaufnahme einer Autobahn

Bleiben Sie in der Cloud

Abonnieren Sie den wöchentlichen Think-Newsletter und erhalten Sie Tipps von Experten zur Optimierung von Multi-Cloud-Einstellungen in Zeiten von KI.

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-Funktionalität in seinen Kernel integrierte. Nach der Einführung der Open-Source-Containerisierungsplattform Docker im Jahr 2013 wurde sie noch wichtiger. (Docker ist so beliebt, dass „Docker-Container“ und „Container“ oft synonym verwendet werden.) Heutzutage sind Container nicht nur mit Linux, sondern auch mit vielen anderen Betriebssystemen, einschließlich Windows, kompatibel.

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 (Cloud-verwalteten) 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.

AI Academy

KI-Bereitschaft mit Hybrid Cloud

Das Programm, das von führenden IBM Experten geleitet wird, soll Führungskräften dabei helfen, das nötige Wissen zu erwerben, um die 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, darunter:

  • 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 Fähigkeit ist für Unternehmen, die Anwendungen in einer Hybrid Cloud (die Kombination aus Public Cloud, Private Cloud und On-Premises-Infrastruktur) oder Multicloud (die Nutzung von Cloud-Services von mehr als einem Cloud-Anbieter).

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 Knative, das die Ausführung von Containern als serverlose Workloads ermöglicht, und Istio, ein Open-Source-Servicenetz.

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
  • 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.

Weiterführende Lösungen
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).

Red Hat OpenShift erkunden
Container-Lösungen

Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.

Container erkunden
Cloud-Beratungsleistungen 

Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.

Cloud-Services
Machen Sie den nächsten Schritt

Modernisieren Sie Ihre Infrastruktur mit den Containerlösungen von IBM. Mit der umfassenden Container-Plattform von IBM können Sie containerisierte Workloads flexibel, sicher und effizient über verschiedene Umgebungen hinweg ausführen, skalieren und verwalten.

Containerlösungen kennenlernen Kostenloses IBM Cloud-Konto erstellen
Fußnoten