Eine Einführung in die Mesosphäre

Was ist Mesosphäre?

Mesosphere ist eine Softwarelösung, die die Cluster-Verwaltungsfunktionen von Apache Mesos um zusätzliche Komponenten erweitert, um eine neue und neuartige Möglichkeit 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 abstrahiert werden.

Mesosphere bietet Funktionen wie Anwendungsplanung, Skalierung, Fehlertoleranz und Selbstheilung. Es bietet auch Application Service Discovery, Port-Vereinheitlichung und Endpunktelastizität.Um eine bessere Vorstellung davon zu geben, wie Mesosphere die oben genannten Funktionen bietet, werden wir kurz erklären, was jede Schlüsselkomponente von Mesosphere tut, beginnend mit Apache Mesos, und zeigen, wie jede 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, wie:

  • Skalierbarkeit auf über 10.000 Knoten
  • Ressourcenisolierung für Aufgaben durch Linux-Container
  • Effiziente CPU- und speicherbewusste Ressourcenplanung
  • Hochverfügbarer Master durch Apache ZooKeeper
  • Web-Benutzeroberfläche zur Überwachung des Clusterstatus

Mesos-Architektur

Mesos verfügt über eine Architektur, die aus Master- und Slave-Daemons sowie Frameworks besteht. 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: framework: Auch bekannt als Mesos-Anwendung, besteht aus einem Scheduler, der sich beim Master registriert, um Ressourcenangebote zu erhalten, und einem oder mehreren Executoren, die Tasks auf 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 stellt registrierten Frameworks Angebote zur Verfügung
  • Aufgabe: 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 Master-Knoten koordiniert werden

Mesos-Architektur

Hinweis: „ZK“ steht in diesem Diagramm für ZooKeeper.

Diese Architektur ermöglicht es Mesos, die Ressourcen des Clusters mit einem hohen Maß an Granularität zwischen Anwendungen zu teilen. Die Menge der Ressourcen, die einem bestimmten Framework angeboten werden, 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 Vorgänge abgeschlossen und die verbrauchten Ressourcen freigegeben wurden, wird der Ressourcenangebotszyklus wiederholt, sodass weitere Vorgänge geplant werden können.

Hohe Verfügbarkeit

Die hohe Verfü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 Master-Leader-Wahl und übernimmt die Leader-Erkennung zwischen Mesos-Komponenten, einschließlich Slaves und Frameworks.

Für eine hochverfügbare Konfiguration sind mindestens drei Masterknoten erforderlich – ein Setup mit drei Mastern ermöglicht die Aufrechterhaltung des Quorums für den Fall, dass ein einzelner Master ausfällt – für eine ausfallsichere Produktionsumgebung werden jedoch fünf Masterknoten empfohlen, sodass das Quorum mit zwei Masterknoten offline aufrechterhalten werden kann.

Weitere Informationen zu Apache Mesos finden Sie auf der offiziellen Dokumentationsseite.

Ein grundlegender Überblick über Marathon

Marathon ist ein Framework für Mesos, das zum Starten lang laufender Anwendungen entwickelt wurde und in Mesosphere als Ersatz für ein traditionelles init -System dient. Es verfügt über viele Funktionen, die das Ausführen von Anwendungen in einer Clusterumgebung vereinfachen, z. B. Hochverfügbarkeit, Knotenbeschränkungen, Anwendungszustandsprüfungen, eine API für Skriptfähigkeit und Serviceerkennung sowie eine benutzerfreundliche Webbenutzeroberfläche. Es fügt seine skalierung und selbstheilung fähigkeiten, um die Mesosphäre feature-set.

Marathon kann verwendet werden, um andere Mesos-Frameworks zu starten, und es kann auch jeden Prozess starten, der in der regulären Shell gestartet werden kann. Da es für lang laufende Anwendungen konzipiert ist, stellt es sicher, dass die von ihm gestarteten Anwendungen auch dann weiter ausgeführt werden, wenn die Slave-Knoten, auf denen sie ausgeführt werden, ausfallen.

Weitere Informationen zu Marathon finden Sie auf der GitHub-Seite.

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 Scripting von Planungsaufträgen ermöglicht, und eine Web-Benutzeroberfläche für eine einfache Bedienung.

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

Weitere Informationen zu Chronos finden Sie auf der GitHub-Seite.

Ein grundlegender Überblick über HAProxy

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

Weitere Informationen zu den allgemeinen Funktionen von HAProxy finden Sie in unserer Einführung in HAProxy.

Fazit

Mesosphere verwendet Serverinfrastrukturparadigmen, die ungewohnt erscheinen mögen, da es mit einem starken Fokus auf Clustering und Skalierbarkeit entwickelt wurde, aber hoffentlich haben Sie jetzt ein gutes Verständnis dafür, wie es funktioniert. Jede der Komponenten, auf denen es basiert, bietet Lösungen für Probleme, die häufig beim Clustern und Skalieren einer Serverinfrastruktur auftreten, und Mesosphere zielt darauf ab, eine vollständige Lösung für diese Anforderungen bereitzustellen.

Nun, da Sie die Grundlagen der Mesosphäre kennen, schauen Sie sich das nächste Tutorial in dieser Serie an. Es wird Ihnen beibringen, wie Sie einen produktionsbereiten Mesosphären-Cluster auf Ubuntu 14.04 einrichten!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.