Was ist Container-Orchestrierung?

Container-Orchestrierung ist der Prozess der Automatisierung der Vernetzung und Verwaltung von Containern, sodass Sie Anwendungen in großem Umfang bereitstellen können. Bei der Containerisierung wird der Code einer Anwendung mit allen Dateien und Bibliotheken gebündelt, die für die Ausführung in einer beliebigen Infrastruktur benötigt werden. Microservices-Architekturen können Hunderte oder sogar Tausende von Containern enthalten, wenn Anwendungen wachsen und komplexer werden. Tools zur Container-Orchestrierung zielen darauf ab, die Verwaltung der Container-Infrastruktur zu vereinfachen, indem sie ihren gesamten Lebenszyklus automatisieren – von der Bereitstellung und Planung bis hin zur Bereitstellung und Löschung. Unternehmen können von der Containerisierung in großem Maßstab profitieren, ohne dass zusätzliche Wartungskosten anfallen.

Warum ist Container-Orchestrierung notwendig?

Container sind zur Standardeinheit für die Datenverarbeitung für cloudnative Anwendungen geworden. Cloud-Anbieter bieten virtuelle Server-Instances für die Ausführung aller Arten von Computer-Workloads an und eignen sich perfekt für containerbasierte Workloads. Die einzige Voraussetzung, um Container ausführen zu können, ist, dass der Server selbst einen Containerisierungsdienst wie Docker ausführt. Docker ist ein Open-Source-Tool zum Verpacken von Software und zugehörigen Bibliotheken, Systemtools, Code und Laufzeit in einen Container. Es ist eine einfache Lösung für den Betrieb und die Verwaltung einiger Container auf einer einzelnen Server-Instance, aber die Skalierung wird zu einer Herausforderung.

Bevor es verwaltete Container-Orchestrierungsplattformen gab, verwendeten Unternehmen komplexe Skripte, um die Bereitstellung, Planung und Löschung von Containern auf mehreren Computern zu verwalten. Die Pflege dieser Skripte brachte Herausforderungen wie die Versionskontrolle mit sich, und das Setup war schwierig zu skalieren. Die Container-Orchestrierung automatisiert und löst diese Komplexität und beseitigt so die Herausforderungen, die mit der manuellen Verwaltung verbunden sind. 

Anwendungsfälle für die Container-Orchestrierung

Tools zur Container-Orchestrierung werden notwendig, wenn Sie:

  • Container über eine Reihe von Instances hinweg verwalten und skalieren. 
  • Viele verschiedene containerisierte Anwendungen ausführen.
  • Verschiedene Versionen von Anwendungen (z B. Test und Produktion über CI/CD) gleichzeitig ausführen.
  • Die Kontinuität des Anwendungsdienstes bei einem Serverausfall sicherstellen, indem Sie mehrere doppelte Instances (Replikate) eines Containers ausführen.
  • Mehrere Instances einer App in mehreren verschiedenen geografischen Regionen ausführen.
  • Die Nutzung mehrerer Server-Instances für Budgetierungszwecke maximieren.
  • Große containerisierte Anwendungen ausführen, die aus Tausenden verschiedener Microservices bestehen.

Was sind die Vorteile der Container-Orchestrierung?

Die Verwaltung komplexer Container-Architekturen ohne eine Container-Orchestrierungslösung kann schwierig sein. Die Container-Orchestrierung verwaltet die Erstellung, Konfiguration, Planung, Bereitstellung und Löschung von Containern. Es unterstützt auch:

  • Anwendungslastenausgleich und Verkehrsmanagement.
  • Kontinuität des Anwendungsdienstes über Container hinweg.
  • Sicherheit bei der Containerisierung.
  • Überwachung des Containerstatus.
  • Bereitstellung von Containern aus den zugrunde liegenden Server- oder Instance-Ressourcen.

Im Folgenden sind weitere Vorteile von Container-Orchestrierungen aufgeführt.

Integrierte Ausfallsicherheit

Einfache Containerisierungsdienste starten einen Container in der Regel nicht neu, wenn er offline geht. Wenn die Maschine, auf der ein Container läuft, ausfällt, wird der Container ebenfalls nicht neu gestartet, wenn die Maschine neu gestartet wird. Container-Orchestrierungslösungen können sicherstellen, dass Container automatisch neu gestartet werden oder dass bei einem Maschinenausfall jederzeit mehr als eine Version ausgeführt wird.

Verbesserte Leistung

Einer der größten Vorteile der Container-Orchestrierung besteht darin, dass sie die Skalierbarkeit, Verfügbarkeit und Leistung von containerisierten Apps automatisiert. Sie können Container-Orchestrierungstools so konfigurieren, dass sie je nach Bedarf, Netzwerkverfügbarkeit und Infrastruktureinschränkungen skaliert werden. Die Container-Orchestrierungslösung kann die Leistung im gesamten Container-Netzwerk überwachen und Container automatisch neu konfigurieren, um eine optimale Leistung zu erzielen.

Ressourcenoptimierung

Der Betrieb der zugrundeliegenden Server und Instances kostet Geld und muss zur Kostenoptimierung effizient genutzt werden. Die Container-Orchestrierung ermöglicht es Unternehmen, die Nutzung jeder verfügbaren Instance zu maximieren und On-Demand-Instances zu instanziieren, wenn die Ressourcen knapp werden. Dies führt zu Kosteneinsparungen bei der Infrastruktur.

Wie funktioniert die Container-Orchestrierung?

Container sind eigenständige Linux-basierte Anwendungen oder Microservices, die mit allen Bibliotheken und Funktionen gebündelt sind, die sie für die Ausführung auf fast jedem Maschinentyp benötigen. Bei der Container-Orchestrierung werden Container über eine Gruppe von Server-Instances (auch Knoten genannt) verwaltet. Eine Gruppe von Knoten, auf denen miteinander verbundene Container ausgeführt werden, wird Cluster genannt. 

Für die Container-Orchestrierung ist zunächst eine zugrundeliegende Containerisierungslösung erforderlich, die auf jedem Knoten im Cluster ausgeführt wird – in der Regel ist dies Docker. Auf den Knoten muss auch das Orchestrierungstool ausgeführt werden. Ein designierter Hauptknoten mit einer Steuerebene ist der Controller der Orchestrierungslösung selbst. Der Administrator der Lösung verwendet eine GUI oder einen Befehlszeilencontroller auf dem Hauptknoten, um das Container-Orchestrierungstool zu verwalten und zu überwachen. 

Erstellung und Planung

Die Container-Orchestrierungslösung liest eine deklarative Konfigurationsdatei, die in YAML oder JSON geschrieben ist, um den spezifischen erforderlichen Zustand des Systems zu ermitteln. Mithilfe der in der Datei angegebenen Informationen kann das Tool:

  1. Container-Images aus einer Container-Registry abrufen.
  2. Die Container mit ihren individuellen Anforderungen versorgen.
  3. Das erforderliche Netzwerk zwischen den Containern festlegen. 

Das Tool plant dann die Multicontainer-Anwendung und stellt sie im gesamten Cluster bereit. Diese beste Übereinstimmung zwischen Knoten und Containern wird durch das Container-Orchestrierungstool bestimmt und nicht in der Konfigurationsdatei angegeben. Das Tool wählt den tatsächlichen Knoten aus, auf dem jeder Container ausgeführt werden soll, basierend auf den Ressourcenbeschränkungen des Knotens, wie CPU, Arbeitsspeicher usw., sowie den definierten Containeranforderungen. 

Verwaltung

Sobald die Container im Cluster ausgeführt werden, verwaltet das Orchestrierungstool den allgemeinen Systemzustand, um sicherzustellen, dass der angegebene Leistungsstatus beibehalten wird. Dies kann Folgendes beinhalten:

  • Ressourcenzuweisung zwischen Containern.
  • Bereitstellung von Containern auf neuen Knoten oder Löschen von Containern.
  • Lastenausgleich des Datenverkehrs zur Anwendung.

Eine Container-Orchestrierungslösung verwaltet den Lebenszyklus von Containern, um große, komplexe Workloads und Umgebungen mit mehreren Containern zu optimieren und zu sichern. Es kann so viele containerisierte Anwendungen verwalten, wie ein Unternehmen benötigt. Bei höheren organisatorischen Anforderungen ist es üblich, mehrere Hauptknoten für hohe Verfügbarkeit und Fehlertoleranz zu betreiben.

Was sind die Herausforderungen der Container-Orchestrierung?

Im Folgenden sind einige Herausforderungen der Container-Orchestrierung aufgeführt.

Zusätzliche Verwaltungsebenen

Kubernetes ist eine weit verbreitete Open-Source-Container-Orchestrierungslösung für Unternehmen. Sie ist bekannt für ihre Benutzerfreundlichkeit, plattformübergreifende Verfügbarkeit und Entwicklerunterstützung. Sie erfordert jedoch immer noch ein grundlegendes Ressourcenmanagement. Anstelle von Containern müssen Sie jetzt die Ressourcenbereitstellung für Kubernetes verwalten. Cloudnative Tools zur Container-Orchestrierung sind die bessere Wahl, da sie ihre eigenen Ressourcenanforderungen selbst verwalten. 

Ungenügendes Training

Nur das richtige Tool zu haben, reicht nicht aus, um eine optimale Container-Orchestrierung zu gewährleisten. Sie benötigen außerdem einen erfahrenen Tool-Administrator, der die Orchestrierung korrekt handhabt, den gewünschten Status definiert und die Monitoring-Ergebnisse versteht. Ein tiefes Verständnis von DevOps und dem CI/CD-Prozess, der Containerisierung und der Maschinenarchitektur ist notwendig, um ein erfolgreicher Administrator komplexer Container-Umgebungen zu sein. Möglicherweise ist eine Schulung erforderlich, um die richtigen Fähigkeiten in Ihrem Team aufzubauen.

Versionsverwaltung von Konfigurationen

Eine Softwareanwendung ist versioniert – sie hat bestimmte Builds für bestimmte Umgebungen wie Entwicklung, Test und Produktion. Auf die gleiche Weise benötigen Container-Orchestrierungstools auch mehrere dokumentierte Konfigurationen mit einer Versionshistorie – das bedeutet, dass sie neben der Bereitstellung und Verwaltung auch eine schnelle, wiederholbare Bereitstellung durchführen können.

Wie kann AWS Ihre Anforderungen an die Container-Orchestrierung unterstützen?

Amazon ECS ist ein vollständig verwalteter Container-Orchestrierungs-Service, mit dem Unternehmen containerisierte Anwendungen in großem Umfang in AWS erstellen, bereitstellen und verwalten können. Es ist versionslos und verwaltet automatisch die Cluster-Bereitstellung. Sie behalten die Kontrolle über die Betriebseigenschaften von Containern und können CPU- und Speicheranforderungen, Netzwerk- und IAM-Richtlinien sowie Starttyp und Datenvolumen angeben. Mit API-Aufrufen können Sie Container-basierte Anwendungen starten und beenden sowie den gesamten Zustand Ihres Clusters abfragen. Außerdem erhalten Sie Zugang zu bekannten AWS-Features wie beispielsweise Sicherheitsgruppen, Elastic Load Balancing (ELB), Amazon Elastic Block Store (EBS)-Volumes und AWS Identity Access Management (IAM)-Rollen. 

Für diejenigen, die Kubernetes für die Container-Orchestrierung verwenden, ist Amazon Elastic Kubernetes Service (Amazon EKS) ein verwalteter Kubernetes-Service zum Ausführen von Kubernetes-Services in der AWS Cloud oder in On-Premises Rechenzentren. EKS bietet On-Premises eine konsistente, vollständig unterstützte Kubernetes-Lösung – Sie erhalten integrierte Tooling und Bereitstellung in AWS Outposts, virtuellen Maschinen oder Servern. Amazon EKS verwaltet in der Cloud automatisch die Verfügbarkeit und Skalierbarkeit der Knoten auf der Kubernetes-Steuerebene, die für das Planen einer Reihe von Aufgaben verantwortlich sind – Planen von Containern, die Verwaltung der Verfügbarkeit von Anwendungen, das Speichern von Cluster-Daten usw. Sie können die gesamte Leistung, Skalierbarkeit, Zuverlässigkeit und Verfügbarkeit der AWS-Infrastruktur sowie die Integrationsmöglichkeiten für andere AWS-Netzwerk- und Sicherheitsservices nutzen.

Beginnen Sie mit AWS, indem Sie noch heute ein Konto erstellen

Nächste Schritte in AWS

Für ein kostenloses Konto registrieren

Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.

Registrieren 
Mit der Entwicklung in der Konsole starten

Starten Sie mit der Entwicklung in der AWS-Managementkonsole.

Anmelden