Was ist Containerorchestrierung?
Containerorchestrierung automatisiert und vereinfacht Bereitstellung, Einsatz und Management containerisierter Anwendungen.
IBM Newsletter abonnieren
Blauer und schwarzer Hintergrund
Was ist Containerorchestrierung?

Containerorchestrierung automatisiert Bereitstellung, Einsatz, Vernetzung, Skalierung, Verfügbarkeit und Lebenszyklusmanagement von Containern. Kubernetes ist heute die beliebteste Plattform für die Containerorchestrierung und die meisten führenden Public-Cloud-Provider – 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.

Mehr zu Containern und warum Orchestrierung notwendig ist

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

Die Möglichkeit, Container zu erstellen, gibt es schon seit Jahrzehnten, wurde aber erst 2008 weithin verfügbar, als Linux Containerfunktionalität in seinen Kernel aufnahm, und fand erst mit Aufkommen der Docker Open-Source-Containerisierungsplattform im Jahr 2013 breite Nutzung. (Docker ist so beliebt, dass die Begriffe „Docker-Container“ und „Container“ häufig synonym verwendet werden.) 

Da sie kleiner, ressourceneffizienter und portierbarer sind als virtuelle Maschinen (VM), wurden Container – genauer gesagt containerisierte Microservices oder serverlose Funktionen – zu den De-facto-Recheneinheiten moderner cloudnativer Anwendungen. (Weitere Informationen zu den Vorteilen von Containern finden Sie in der nachstehenden interaktiven Datenvisualisierung.)

In kleiner Anzahl können Container problemlos manuell bereitgestellt und verwaltet werden. Aber in den meisten Unternehmen steigt die Zahl containerisierter Anwendungen rasant. Container-Management in großem Umfang – insbesondere als Teil einer Continuous Integration/Continuous Delivery (CI/CD)- oder DevOps-Pipeline – ist ohne Automatisierung unmöglich.

Genau hier kommt die Containerorchestrierung ins Spiel, die die Betriebsaufgaben rund um Bereitstellung und Ausführung von containerisierten Anwendungen und Diensten automatisiert. Laut einer aktuellen IBM Studie (PDF, 1,4 MB) geben 70 % der Entwickler, die Container verwenden, an, dass sie eine Container-Orchestrierungslösung einsetzen, und wiederum 70 % davon geben an, dass sie in ihrem Unternehmen einen vollständig verwalteten (Cloud-verwalteten) Container-Orchestrierungsdienst nutzen.

Vollständigen Bericht „Nutzung von Containern in Unternehmen“ herunterladen (PDF, 1,4 MB)
So funktioniert Containerorchestrierung

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

Die meisten Tools für die Containerorchestrierungs unterstützen ein deklaratives Konfigurationsmodell: Ein Entwickler schreibt eine Konfigurationsdatei (je nach Tool in YAML oder JSON ), die einen gewünschten Konfigurationszustand definiert. Das Orchestrierungstool führt daraufhin die Datei aus und verwendet seine eigene Intelligenz, um den gewünschten Zustand herzustellen. Die Konfigurationsdatei hat normalerweise die folgenden Aufgaben:

  • Definition, aus welchen Container-Images die Anwendung besteht und wo diese sich befinden (d. h. in welcher Registry)

  • Versorgung der Container mit Speicher und anderen Ressourcen

  • Definition und Schutz der Netzverbindungen zwischen Containern

  • Festlegung der Versionierung (für Stufen- oder Canary-Rollouts)

Das Orchestrierungstool plant die Bereitstellung der Container (und der Replikate der Container zur Gewährleistung der Ausfallsicherheit) auf einem Host und wählt dabei den besten Host auf der Grundlage der verfügbaren CPU-Kapazität, des Arbeitsspeichers oder anderer in der Konfigurationsdatei angegebener Anforderungen oder Einschränkungen aus. 

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

  • Verwaltung der Skalierbarkeit (nach oben und unten), Lastausgleich und  Ressourcenzuweisung zwischen den Containern

  • Sicherstellung von Verfügbarkeit und Leistung durch Verlagerung der Container auf einen anderen Host im Falle einer Betriebsunterbrechung oder fehlender Systemressourcen

  • Sammeln und Speichern von Protokolldaten und anderer Telemetriedaten, die zur Überwachung des Zustands und der Leistung der Anwendung verwendet werden.

Vorteile der Containerorchestrierung


Der Hauptvorteil der Containerorchestrierung liegt ganz eindeutig in der Automatisierung – und das nicht nur, weil sie den Aufwand und die Komplexität der Verwaltung eines großen containerisierten Anwendungsbestands erheblich reduziert. Denn durch die Prozessautomatisierung unterstützt die Orchestrierung außerdem einen agilen oder DevOps-Ansatz, der es den Teams ermöglicht, Anwendungen in schnellen, iterativen Zyklen zu entwickeln und bereitzustellen und neue Funktionen und Fähigkeiten schneller verfügbar zu machen.

Darüber hinaus kann ein intelligentes Orchestrierungstool viele der inhärenten Vorteile der Containerisierung verbessern oder erweitern. So maximiert beispielsweise die automatische Auswahl von Hosts und die Ressourcenzuweisung auf der Grundlage einer deklarativen Konfiguration die effiziente Nutzung von Rechenressourcen; die automatische Betriebszustandsüberwachung und Verlagerung von Containern maximiert dabei die Verfügbarkeit.

Kubernetes

Wie bereits erwähnt, ist Kubernetes die beliebteste Plattform für die Containerorchestrierung. Zusammen mit anderen Tools im Container-Ökosystem ermöglicht Kubernetes einem Unternehmen die Bereitstellung einer hochproduktiven Platform-as-a-Service (PaaS), die viele der infrastruktur- und betriebsbezogenen Aufgaben und Probleme im Zusammenhang mit der Entwicklung von cloudnativen Anwendungen löst, so dass sich die Entwicklungsteams ausschließlich auf Programmierung und Innovation konzentrieren können.

Die Vorteile von Kubernetes gegenüber anderen Orchestrierungslösungen sind im Wesentlichen ein Ergebnis seiner umfassenderen und ausgereifteren Funktionalität in mehreren Bereichen, wie z. B.:

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

  • Rollouts. Unter einem Rollout versteht man eine Änderung an einer Implementierung. Mit Kubernetes können Sie Rollouts initiieren, pausieren, fortsetzen oder rückgängig machen.

  • Serviceerkennung. Kubernetes kann einen Container automatisch über einen DNS-Namen oder eine IP-Adresse dem Internet oder anderen Containern zur Verfügung stellen.

  • Speicherbereitstellung.  Entwickler können Kubernetes so einrichten, dass es bei Bedarf dauerhaften lokalen oder Cloud-Speicher für ihre Container bereitstellt.

  • Lastausgleich und Skalierbarkeit. Wenn der Datenverkehr zu einem Container sprunghaft ansteigt, kann Kubernetes durch Lastausgleich und Skalierung den Datenverkehr über das Netz verteilen und so Stabilität und Leistung gewährleisten. (Entwickler müssen daher auch keine Lastausgleichsfunktion einrichten.)

  • Automatische Fehlerbehebung für hohe Verfügbarkeit. Wenn ein Container ausfällt, kann Kubernetes ihn automatisch neu starten oder ersetzen. Es kann außerdem Container aus dem Verkehr ziehen, die nicht den Anforderungen der Zustandsüberwachung entsprechen.

     
  • Unterstützung und Portierbarkeit für mehrere Cloud-Provider. Wie bereits erwähnt, wird Kubernetes von allen führenden Cloud-Anbietern unterstützt. Dies ist besonders wichtig für Unternehmen, die Anwendungen in einer Hybrid-Cloud- oder Hybrid-Multicloud-Umgebung bereitstellen.

  • Wachsendes Ökosystem von Open-Source-Tools.  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. Zu diesen Tools gehören Knative, mit dem Container als serverlose Workloads ausgeführt werden können, und Istio, ein Open-Source-Service-Mesh. 

Weitere Informationen zu Kubernetes

Weiterführende Lösungen
Red Hat OpenShift on IBM Cloud

Red Hat OpenShift on IBM Cloud nutzt OpenShift in Public-Cloud- und Hybridumgebungen für Schnelligkeit, Marktreaktivität, Skalierbarkeit und Zuverlässigkeit.

Mehr über Red Hat OpenShift on IBM Cloud erfahren
IBM Cloud Satellite

Mit IBM Cloud Satellite können Sie konsistente Cloud-Services überall starten – vor Ort, in der Edge und in Public-Cloud-Umgebungen.

IBM Cloud Satellite kennenlernen
IBM Cloud Code Engine

Führen Sie Container-Images, Batch-Jobs oder Quellcode als serverlose Workloads aus – ohne Größenanpassung, Bereitstellung, Vernetzung oder Skalierung.

IBM Cloud Code Engine erkunden
Ressourcen Container in Unternehmen

Eine neue IBM Studie belegt die zunehmende Verbreitung von Containern und Kubernetes.

Kombinieren Sie die besten Eigenschaften von Cloud und traditioneller IT

Containerorchestrierung ist eine Schlüsselkomponente einer offenen Hybrid-Cloud-Strategie, mit der Sie Workloads von überall aus erstellen und verwalten können.

Was ist Docker?

Docker ist eine Open-Source-Plattform für die Erstellung, Bereitstellung und Verwaltung von containerisierten Anwendungen.

Machen Sie den nächsten Schritt

Red Hat OpenShift on IBM Cloud bietet Entwicklern schnelle, sichere Containerisierung und Bereitstellung von Unternehmens-Workloads in Kubernetes-Clustern.Entlasten Sie Ihre Teams von mühsamen und sich wiederholenden Aufgaben wie Sicherheitsmanagement, Compliance-Management, Bereitstellungsmanagement und laufendes Lebenszyklusmanagement.Da IBM die Verwaltung der OpenShift Container Platform (OCP) übernimmt, haben Sie nun mehr Zeit, sich auf Ihre Kernaufgaben zu konzentrieren.

Mehr über Red Hat OpenShift on IBM Cloud erfahren