cherezoff - stock.adobe.com
Apache Mesos erfolgreich auf einem Linux-Server installieren
Haben Administratoren mit Orchestrierung von Containern zu tun, sollten Sie Apache Mesos ausprobieren. Wir zeigen Ihnen, wie Sie die Software installieren und betreiben.
Apache Mesos ist Open Source und ein Cluster Management Tool, das die Ressourcen in einer verteilten IT-Umgebung abstrahiert und isoliert. Unternehmen nutzen Mesos zusammen mit oder als Alternative zu Kubernetes, um in großangelegten Installationen die Container zu orchestrieren.
Mesos setzt auf eine Master-Agent-Architektur. Dabei verwaltet ein Master Daemon die Agent Daemons, die auf einem Cluster Node laufen. In diesem Tutorial für die Installation von Apache Mesos konfigurieren wir den Master auf einem Server und den Agenten auf einem anderen. Es ist aber auch möglich, beide Komponenten auf einer Maschine zu betreiben. Die Prozedur ist dabei nicht unterschiedlich. Der einzige Unterschied ist, wo sich der Master befindet, wenn Sie den Agenten starten.
Sie sollten damit rechnen, dass der Build-Prozess von Apache Mesos auf einer Maschine mit zwei Kernen und acht GByte RAM zirka eine Stunde dauert. Darin enthalten sind das Kompilieren und das verlinken der Komponenten.
Vermeiden Sie zunächst diese Stolperfallen
Stoppen Sie sämtliche Serveraufgaben und die anderen Tasks auf der Maschine, bevor Sie mit dem Kompilieren von Apache Mesos beginnen. Der Prozess kann 100 Prozent des Speichers beanspruchen und dann sind möglicherweise sogar keine Anmeldungen via SSH mehr möglich.
Sie müssen alle Befehle mittels sudo aufrufen. Das bedeutet, Sie führen die Kommandos als Administrator oder root aus.
Test-Frameworks sind nicht kritisch. Ein Test-Framework für Mesos zu etablieren, ist ein komplexer Prozess und ein normaler Anwender braucht wahrscheinlich keines. IT-Administratoren nutzen mit größerer Wahrscheinlichkeit ein Mesos-Framework, das von einem etablierten Anbieter wie zum Beispiel Hadoop, Spark oder Cassandra entwickelt wurde.
Voraussetzungen für die Installation und Konfiguration von Apache Mesos
Mesos läuft auf den meisten Linux-Distributionen, macOS und Windows. In unserem Tutorial setzen wir Ubuntu 16.04 ein. Die Installation für Windows und macOS unterscheidet sich.
Öffnen Sie Firewall-Port 5050 auf den Computern, auf denen die Master und Agent Daemons laufen. Fehlen Ihnen dafür die Rechte, dann verwenden Sie einen Port, der normalerweise offen ist. Sie können das auch mit einem Online Port Scanner prüfen.
Führen Sie alle nachfolgenden Befehle aus. Haben Sie JDK 1.8 bereits installiert, dann lassen Sie den Schritt für die Installation des Java Development Kits aus (Zeile 2). Überprüfen Sie die Version von JDK mit dem Befehl java -v.
sudo apt-get install -y tar wget git
sudo apt-get install -y openjdk-8-jdk
sudo apt-get install -y autoconf libtool
sudo apt-get -y install build-essential python-dev python-six python-virtualenv libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev zlib1g-dev iputils-ping
Laden Sie nun die Installationsdateien von Apache Mesos herunter und entpacken sie. Speichern Sie die Dateien im Ordner /usr/share, der allen Anwendern zur Verfügung steht.
cd /usr/share/
sudo mkdir mesos
sudo wget http://www.apache.org/dist/mesos/1.7.2/mesos-1.7.2.tar.gz
sudo tar -zxf mesos-1.7.2.tar.gz
cd /usr/share/mesos/mesos-1.7.2
Erstellung der Software
Sie müssen die Software erstellen, also kompilieren und verlinken. Anwender können sich die Binärdateien herunterladen, aber zum Zeitpunkt des Artikels waren sie nicht auf dem aktuellen Stand und ein paar Versionsnummern hinterher.
Der einfache Build-Befehl make startet die Prozesse für Master und Agent. Der nachfolgende Code sollte funktionieren. Die Installation des Test-Frameworks, das Mesos via Python und Java zur Verfügung stellt, funktioniert möglicherweise nicht.
sudo mkdir build
cd build
../configure
sudo make
Sie können die Installation von Mesos vielleicht beschleunigen, wenn sie sämtliche CPUs der Maschine nutzen und Logging deaktivieren. Das funktioniert, wenn Sie nachfolgende Zeile an den make-Befehl anhängen:
-j <number of cores> V=0
Beispiel-Frameworks installieren
Apache Mesos führt keine Programme aus, sondern Frameworks, die wiederum Programme ausführen. Installieren Sie die Beispiel-Frameworks. Das dauert ungefähr eine Stunde.
sudo make check
Mesos starten
Schließen Sie die Installation ab, indem Sie den Cluster Orchestrator starten. Verwenden Sie eine IP-Adresse zum Beispiel eines Cloud-Providers, die aus dem Internet erreichbar is, um die Browser-Schnittstelle zu benutzen. Amazon Elastic Compute Cloud hat normalerweise eine Adresse, die mit 172.* beginnt. Das Amazon-Netzwerk setzt NAT (Network Address Translation) ein, um Netnetzwerke aus dem Internet zugänglich zu machen. Verwenden Sie nicht die sogenannte Loopback-Schnittstelle 127.0.0.1, weil das nur lokal funktioniert.
Im nächsten Schritt der Installation von Apache Mesos starten Sie den Master Daemon.
cd /usr/share/mesos/mesos-1.7.2/build/bin
sudo ./mesos-master.sh --ip=172.31.47.43 --work_dir=/var/lib/mesos
Im Anschluss aktivieren Sie den Agent. Sie können das beliebig oft für alle verfügbaren Agents wiederholen. Bei nur zwei Servern könnten Sie einen Agent sowohl auf dem Server mit dem Master als auch auf dem anderen installieren, um einen Cluster besser zu emulieren. Die Installation des Agenten ist identisch zum Master, allerdings wird ein anderes Programm gestartet. Um den Agenten zu starten, hinterlegen sie die IP-Adresse des Masters und den Standard-Port 5050:
cd /usr/share/mesos/mesos-1.7.2/build/bin
sudo ./mesos-agent.sh --master=172.31.47.43:5050 --work_dir=/var/lib/mesos
Öffnen Sie im Browser die öffentliche IP-Adresse, zum Beispiel: http://ec2-35-180-230-169.eu-west-3.compute.amazonaws.com:5050/#/
Das Dashboard im Browser zeigt die Zustände aller Agenten. In unserem Beispiel laufen ein Agent und keine Tasks.
Das Framework testen
Damit Sie die Installation von Apache Mesos überprüfen können, konfigurieren Sie sie so, dass es mit einem Cluster Computing Framework wie Apache Spark läuft. Alternativ dazu führen Sie die drei nachfolgenden Befehle aus, die sich ebenfalls um die Konfiguration kümmern. Das funktioniert aber nur, wenn der Befehl make check eine saubere Kompilation berichtet. Das Python-Beispiel setzt Python Version 2.7 voraus. Mit Spark haben Sie die hier genannten potenziellen Probleme nicht.
./src/test-framework –master=127.0.0.1:5050
./src/examples/java/test-framework 127.0.0.1:5050
python test_framework.py 172.31.47.43:5050
Hochverfügbarkeit einrichten
Hochverfügbarkeit oder High Availability ist mehr als nur die Kopie des Masters, damit das System weiterhin funktioniert, sollte ein alleiniger Master ausfallen.
Um Mesos im Hochverfügbarkeitsmodus zu konfigurieren, führen Sie zunächst Apache Zookeeper aus. Das ist ein zentralisierter Service für verteilte Anwendungen. Sie können damit Konfigurationsinformationen, Synchronisierung und anderen betriebliche Aspekte verwalten. Im Anschluss starten Sie die Masters und Agents mit dem Argument –zk
--zk=//host1:port1,host2:port2. Der Befehl meldet Mesos bei den anderen Master-Instanzen an.