pattilabelle - Fotolia

Amazon ECS und die Container-Orchestrierung mit Kubernetes oder AWS Blox

Amazons Container-Service ECS bietet eine eigene Container-Orchestrierung, unterstützt aber nicht Kubernetes. Zukünftig soll Blox diese Lücke füllen.

Die Container-Virtualisierung wird derzeit zur Basis von immer mehr Cloud-Projekten und setzt dabei auch die Container-Orchestrierung voraus, über die in großen Umgebungen ein effizientes Zusammensetzen von Ressourcen und Instanzen überhaupt erst möglich ist. Unternehmen stehen inzwischen unterschiedliche Optionen zur Container-Orchestrierung zur Verfügung, beispielsweise Amazon ECS (Amazon Container Service), Azure Container Service oder Docker Swarm.

Derzeit sieht es allerdings eher so aus, als würde das von Google vorangetriebene Open-Source-Projekt Kubernetes zum De-facto-Standard der Container-Orchestrierung werden. Kubernetes ist eines der am schnellsten wachsenden Open-Source-Projekte und eine kürzlich durchgeführte Umfrage unter OpenStack-Anwendern zeigte, dass Kubernetes inzwischen auch das beliebteste Tool zur Verwaltung von OpenStack-Anwendungen ist.

Kubernetes-Erfolg durch Open-Source-Strategie

Durch die Veröffentlichung von Kubernetes als Open-Source-Software setzte Google seine Hoffnung darauf, dass ein Ökosystem aus Anwendern entstehen würde, die gleichzeitig auch die Entwicklung von Kubernetes vorantreiben und in ihre DevOps-Toolchain integrieren würden. Mit dieser Strategie ist Kubernetes zu einem elementaren Bestandteil vieler PaaS-Angebote (Platform as a Service) geworden, fast alle der größten Cloud-Plattformen setzten mittlerweile auf Kubernetes, zum Beispiel Azure, IBM Bluemix, OpenStack, VMware und natürlich die Google Cloud Platform.

Die Federated Services von Kubernetes ermöglichen den einfachen Umgang mit Cluster- und Cloud-übergreifenden Bereitstellungen. Kubernetes-Cluster, die in unterschiedlichen Cloud-Umgebungen wie AWS, Google oder Private Clouds ausgeführt werden, können so über eine einheitliche Federation API miteinander interagieren. Damit können Clients automatisch die jeweils am nächsten gelegene Instanz des jeweiligen Container-Services finden, ganz einfach über DNS-Einträge (Domain Name System) der Federation Services.

Kubernetes stellt Gruppen von Containern als Pods auf Cluster-Nodes zur Verfügung. Dabei optimieren Algorithmen die Platzierung, um Objekte verschiedener Größe auf dem kleinstmöglichen Laufwerk unterzubringen. Anwendungen eines Pods teilen sich die Netzwerkkonfiguration und einen Linux-Namensraum.

Kubernetes verwaltet diese Pods, was zum Beispiel das Starten, Stoppen, Neustarten und Verschieben innerhalb eines Clusters beinhaltet. Kubernetes kann Anwendungen als Reaktion auf manuelle Befehle skalieren, wobei entweder eine Kommandozeile oder eine eigene Benutzeroberfläche zum Einsatz kommt, bietet aber auch eine Funktion zur automatischen Skalierung. Kubernetes unterstützt auch persistente Laufwerke, die manuell oder dynamisch an einem Pod konfiguriert werden. Auch Kubernetes selbst ist in hohem Maße skalierbar und kann bis zu 2.000 Nodes in einem Cluster mit bis zu 120.000 Container verarbeiten.

AWS Blox: Die Amazon-Reaktion auf Kubernetes

AWS fehlt in der weiter oben aufgezählten Liste der Cloud-Anbieter, die Kubernetes unterstützen. Natürlich kann Kubernetes im Do-it-yourself-Verfahren auf EC2-Instanzen (Elastic Compute Cloud) bereitgestellt werden, Amazons eigene Container-Plattform ECS nutzt allerdings eine proprietäre Eigenentwicklung.

Die proprietäre Herangehensweise seitens Amazon stellt Unternehmen gewissermaßen eine Black Box zur Verfügung, die ein Verschieben von Container-Workloads über unterschiedliche Cloud-Plattformen hinweg äußerst schwer macht. So lassen sich beispielsweise viele Automatisierungs- und Management-Skripte nicht einwandfrei von ECS zu Kubernetes übertragen.

Ende 2016 hatte Amazon schließlich ein zusätzliches Orchestrierungs-Tool namens AWS Blox veröffentlicht, vor allem um großen Unternehmen mit hybriden Container-Infrastrukturen eine ähnliche Container-Orchestrierung über Private und Public Clouds hinweg bieten zu können. Auch wenn Blox ebenfalls Open-Source-Software ist und beispielsweise die öffentliche Unterstützung durch Netflix für sich verbuchen kann, ist das Amazon-Tool bisher lediglich auf AWS verfügbar.

AWS Blox ist dabei weniger ein Tool zum Cluster-Management als vielmehr ein Scheduling-Framework. Der AWS-Service nutzt bestehende ESC-Event-Logs, die momentan vor allem zum Monitoring ausgewertet werden, um die Entwicklung eines angepassten ECS-Schedulers zu erleichtern.

Über eine REST-API stellt AWS Blox zwei Services bereit: Einen Dienst zum Sammeln und Speichern des Cluster-Zustands, den Cluster-State-Service, und einen daemon-Scheduler, der dem Service das Starten einer Aufgabe pro Container über alle Nodes eines Clusters hinweg ermöglicht. Der Scheduler überwacht dabei den Cluster und registriert neue Nodes und platziert dort automatisch neue Workloads.

Der Blox-Scheduler stellt zudem Programmierschnittstellen zur Verfügung, über die externe Log- und Monitoring-Tools Zugriff auf die Daten von ECS-Applikationen erhalten. Blox enthält auch eine Kommandozeile, über die sich alle Funktionen steuern lassen, inklusive die Verwendung von Docker Compose zur Definition und Bereitstellung von Multi-Container-Anwendungen, was Blox selbst derzeit nicht unterstützt.

Blox noch kein vollwertiges Tool zur Container-Orchestrierung

Viele ECS-Nutzer kritisieren allerdings, dass Blox mehr wie ein neues Open-Source-Projekt und weniger wie ein voll funktionstüchtiges Tool zur Container-Orchestrierung aussieht. Gemäß der Readme-Datei von Blox kann der Scheduler als „Referenz“ dafür angesehen, „wie der Cluster-State-Service zum Erstellen einer eigenen Scheduling-Logik verwendet werden kann.“ Zukünftig sollen weitere Scheduling-Funktionen für unterschiedliche Anwendungsfälle hinzugefügt werden.

So empfiehlt selbst AWS, Blox lediglich auf einer lokalen Docker-Installation auszuprobieren und nicht in produktiven ECS-Systemen. Damit dürfte die Hoffnung verbunden sein, dass sich hier langfristig ein ganzes Ökosystem an DevOps-Tools rund um Amazon ECS herausbildet.

Weitere Artikel zur Container-Orchestrierung:

CASP: Neue SUSE-Plattform zur Container-Orchestrierung

Welche Tools zur Container-Orchestrierung unterstützt OpenStack?

Container-Virtualisierung mit Docker, Kubernetes und Google Cloud Platform

Seit seiner Veröffentlichung hat sich das Blox-Projekt durchaus weiterentwickelt und kommt auf drei bis sechs Code Commits pro Woche, was zusammen 20.000 bis 40.000 neue Code-Einträge pro Woche ausmacht. Derzeit gibt es sieben neue Funktionen auf der Blox-Roadmap, inklusive einem Web-Interface, der Unterstützung für mehrere Accounts und Hochverfügbarkeitsfunktionen wie redundanten Schedulern, automatischem Instanzen-Neustart und einem redundanten Datastore.

Momentan dürfte AWS Blox aber vor allem für Anwender mit einem Blick für die Zukunft interessant sein. Für Produktivumgebungen empfiehlt sich im AWS-Universum derzeit noch klar das native ECS-Scheduling.

Amazon ECS ist vor allem für IT-Abteilungen ideal, die Container-Workloads auf AWS betreiben wollen und sich keine großen Sorgen um einen Infrastruktur-Lock-in machen. Mit dieser Herangehensweise könnte man sich dann ganz auf die Nutzung höherliegender AWS-Services beispielsweise zum Machine Learning fokussieren. Und natürlich auf die Integration dieser in containerisierte Applikationen. Langfristig könnte Blox zu einem allgemeinen Cluster-Manager mit Unterstützung auch durch andere Plattformen werden. Sehr viel wahrscheinlicher ist allerdings, dass Blox vor allem für Private-Cloud-Umgebungen adaptiert wird.

Wer nicht ausschließlich auf AWS setzt oder in Multi-Cloud-Szenarien auch auf andere Plattformen, der sollte sich eher Kubernetes oder andern Cross-Cloud-Tools wie Docker Swarm und Mesos Marathon zuwenden. Dabei gilt zwar selbst das tägliche Arbeiten mit Kubernetes als äußerst komplex, die stetige Weiterentwicklung von Kubernetes dürfte aber auch in diesem Punkt Verbesserungen bringen.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Artikel wurde zuletzt im Mai 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Cloud-Anwendungen

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close