Eine Einführung in die Mesosphäre

Was ist Mesosphäre?

Mesosphere ist eine Softwarelösung, die die Clusterverwaltungsfunktionen von Apache Mesos um zusätzliche Komponenten erweitert, um eine neue und neuartige Methode zur Verwaltung von Serverinfrastrukturen bereitzustellen. Durch die Kombination mehrerer Komponenten mit Mesos wie Marathon und Chronos ermöglicht Mesosphere eine einfache Skalierung von Anwendungen, indem viele der mit der Skalierung verbundenen Herausforderungen beseitigt werden.

Mesosphere bietet Funktionen wie Anwendungsplanung, Skalierung, Fehlertoleranz und Selbstheilung. Es bietet auch die Erkennung von Anwendungsdiensten, die Vereinheitlichung von Ports und die Elastizität von Endpunkten.

Um eine bessere Vorstellung davon zu bekommen, wie Mesosphere die oben genannten Funktionen bietet, erklären wir kurz, was jede Schlüsselkomponente von Mesosphere tut, beginnend mit Apache Mesos, und zeigen, wie jede Komponente im Kontext von Mesosphere verwendet wird.

Ein grundlegender Überblick über Apache Mesos

Apache Mesos ist ein Open-Source-Cluster-Manager, der die Ausführung von Anwendungen auf einem skalierbaren Cluster von Servern vereinfacht und das Herzstück des Mesosphere-Systems darstellt.

Mesos bietet viele der Funktionen, die Sie von einem Cluster-Manager erwarten würden, z.

  • Skalierbarkeit auf über 10.000 Knoten

  • Ressourcenisolierung für Aufgaben über Linux-Container

  • Effiziente CPU- und speicherorientierte Ressourcenplanung

  • Hochverfügbarer Master über Apache ZooKeeper

  • Web-Benutzeroberfläche zur Überwachung des Clusterstatus

Mesos Architektur

Mesos verfügt über eine Architektur, die sich aus Master- und Slave-Dämonen sowie Frameworks zusammensetzt. Hier ist eine kurze Aufschlüsselung dieser Komponenten und einiger relevanter Begriffe:

  • * Master-Daemon *: Läuft auf einem Master-Knoten und verwaltet Slave-Daemons

  • * Slave-Daemon *: Läuft auf einem Master-Knoten und führt Aufgaben aus, die zu Frameworks gehören

  • * Framework *: Auch als Mesos-Anwendung bekannt. Es besteht aus einem Planer, der sich beim Master registriert, um Ressourcenangebote zu erhalten, und einem oder mehreren Ausführern, die Aufgaben für Slaves starten. Beispiele für Mesos-Frameworks sind Marathon, Chronos und Hadoop

  • * Angebot *: Eine Liste der verfügbaren CPU- und Speicherressourcen eines Slave-Knotens. Alle Slave-Knoten senden Angebote an den Master und der Master bietet Angebote für registrierte Frameworks an

  • * Task *: Eine Arbeitseinheit, die von einem Framework geplant und auf einem Slave-Knoten ausgeführt wird. Eine Aufgabe kann alles sein, von einem Bash-Befehl oder -Skript über eine SQL-Abfrage bis hin zu einem Hadoop-Job

  • * Apache ZooKeeper *: Software, mit der die Masterknoten koordiniert werden

  • Hinweis: * "ZK" steht in diesem Diagramm für ZooKeeper.

Durch diese Architektur kann Mesos die Ressourcen des Clusters auf Anwendungen mit einem hohen Grad an Granularität verteilen. Die Menge der für ein bestimmtes Framework angebotenen Ressourcen basiert auf der auf dem Master festgelegten Richtlinie, und der Framework-Scheduler entscheidet, welches der Angebote verwendet werden soll. Sobald der Framework-Scheduler entscheidet, welche Angebote er verwenden möchte, teilt er Mesos mit, welche Aufgaben ausgeführt werden sollen, und Mesos startet die Aufgaben auf den entsprechenden Slaves. Nachdem die Aufgaben abgeschlossen und die verbrauchten Ressourcen freigegeben wurden, wird der Ressourcenangebotzyklus wiederholt, damit weitere Aufgaben geplant werden können.

Hohe Verfügbarkeit

Die Hochverfügbarkeit von Mesos-Mastern in einem Cluster wird durch die Verwendung von Apache ZooKeeper ermöglicht, um die Master zu replizieren und ein Quorum zu bilden. ZooKeeper koordiniert auch die Auswahl der Master-Anführer und kümmert sich um die Erkennung von Anführern zwischen Mesos-Komponenten, einschließlich Slaves und Frameworks.

Für eine hochverfügbare Konfiguration sind mindestens drei Masterknoten erforderlich - bei einem Ausfall eines einzelnen Masters kann das Quorum aufrechterhalten werden. Für eine ausfallsichere Produktionsumgebung werden jedoch fünf Masterknoten empfohlen, mit denen das Quorum aufrechterhalten werden kann zwei Master-Knoten offline.

Weitere Informationen zu Apache Mesos finden Sie unter its official documentation page.

Ein grundlegender Überblick über Marathon

Marathon ist ein Framework für Mesos, das zum Starten von Anwendungen mit langer Laufzeit entwickelt wurde und in Mesosphere als Ersatz für ein traditionelles "+ init +" - System dient. Es verfügt über zahlreiche Funktionen, die das Ausführen von Anwendungen in einer Clusterumgebung vereinfachen, z. B. Hochverfügbarkeit, Knotenbeschränkungen, Anwendungsintegritätsprüfungen, eine API für die Skriptfähigkeit und Diensterkennung sowie eine benutzerfreundliche Webbenutzeroberfläche. Das Feature-Set Mesosphere wird um seine Skalierungs- und Selbstheilungsfunktionen erweitert.

Marathon kann verwendet werden, um andere Mesos-Frameworks zu starten, und es kann auch jeder Prozess gestartet werden, der in der regulären Shell gestartet werden kann. Da es für Anwendungen mit langer Laufzeit entwickelt wurde, wird sichergestellt, dass von ihm gestartete Anwendungen weiterhin ausgeführt werden, selbst wenn der oder die Slave-Knoten, auf denen sie ausgeführt werden, ausfallen.

Weitere Informationen zu Marathon finden Sie unter its GitHub page.

Ein grundlegender Überblick über Chronos

Chronos ist ein Framework für Mesos, das ursprünglich von Airbnb als Ersatz für + cron + entwickelt wurde. Als solches ist es ein voll funktionsfähiger, verteilter und fehlertoleranter Scheduler für Mesos, der die Orchestrierung von Jobs erleichtert, bei denen es sich um Sammlungen von Aufgaben handelt. Es enthält eine API, die das Erstellen von Skripten für das Planen von Jobs ermöglicht, und eine benutzerfreundliche Web-Benutzeroberfläche.

In Mesosphere ergänzt Chronos Marathon, da es eine andere Möglichkeit bietet, Anwendungen nach einem Zeitplan oder unter anderen Bedingungen auszuführen, z. B. nach Abschluss eines anderen Auftrags. Es ist auch in der Lage, Jobs auf mehreren Mesos-Slave-Knoten zu planen und Statistiken zu Jobfehlern und -erfolgen bereitzustellen.

Weitere Informationen zu Chronos finden Sie unter its GitHub page.

Ein grundlegender Überblick über HAProxy

HAProxy ist eine beliebte Open-Source-Lösung für Load-Balancer und Reverse-Proxying. Es kann in Mesosphere verwendet werden, um den Netzwerkverkehr von bekannten Hosts, normalerweise Mesos-Mastern, zu den tatsächlichen Diensten zu leiten, die auf Mesos-Slave-Knoten ausgeführt werden. Die Diensterkennungsfunktionen von Mesos können verwendet werden, um HAProxy dynamisch so zu konfigurieren, dass eingehender Datenverkehr an die richtigen Back-End-Slave-Knoten weitergeleitet wird.

Weitere Informationen zu den allgemeinen Funktionen von HAProxy finden Sie unter Introduction to HAProxy.

Fazit

Mesosphere verwendet Serverinfrastruktur-Paradigmen, die ungewohnt erscheinen mögen, da das Hauptaugenmerk auf Clustering und Skalierbarkeit gelegt wurde, aber Sie haben jetzt hoffentlich ein gutes Verständnis dafür, wie es funktioniert. Jede der Komponenten, auf denen sie basiert, bietet Lösungen für Probleme, die häufig beim Clustering und Skalieren einer Serverinfrastruktur auftreten. Mesosphere ist bestrebt, eine vollständige Lösung für diese Anforderungen bereitzustellen.

Nachdem Sie die Grundlagen der Mesosphäre kennen, lesen Sie das nächste Tutorial in dieser Reihe. Hier erfahren Sie unter https://www.digitalocean.com/community/tutorials/, wie Sie einen produktionsbereiten Cluster konfigurieren können Mesosphere Cluster unter Ubuntu 14.04]!