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.
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.
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:
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:
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.
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.:
Red Hat OpenShift on IBM Cloud nutzt OpenShift in Public-Cloud- und Hybridumgebungen für Schnelligkeit, Marktreaktivität, Skalierbarkeit und Zuverlässigkeit.
Mit IBM Cloud Satellite können Sie konsistente Cloud-Services überall starten – vor Ort, in der Edge und in Public-Cloud-Umgebungen.
Führen Sie Container-Images, Batch-Jobs oder Quellcode als serverlose Workloads aus – ohne Größenanpassung, Bereitstellung, Vernetzung oder Skalierung.
Eine neue IBM Studie belegt die zunehmende Verbreitung von Containern und Kubernetes.
Containerorchestrierung ist eine Schlüsselkomponente einer offenen Hybrid-Cloud-Strategie, mit der Sie Workloads von überall aus erstellen und verwalten können.
Docker ist eine Open-Source-Plattform für die Erstellung, Bereitstellung und Verwaltung von containerisierten Anwendungen.