Mesos Framework

Unser Mesos Basis-Framework, geschrieben in Golang, dient als Start für weitere Mesos Frameworks. Die Basis soll einem Darstellen wie Mesos angesprochen wird und wie die Ressourcenverwaltung stattfindet. Folgende Funktionen sind bislang realisiert.

  • Starten von Mesos Containern (nicht mit Docker Container verwechseln)
  • Starten eines Simplen Befehls

WICHTIG

Das Basis Framework ist nicht für die Nutzung auf Produktiv Umgebungen, und/oder Umgebungen welche über das Internet erreichbar ist, geeignet.

Vorraussetzung

Dieses Basis Framework ist aktuell so erstellt, dass es MESOS mit SSL Verschlüsselung und Authentication benötigt.

Framework starten


export FRAMEWORK_USER="root"
export FRAMEWORK_NAME="test_framework"
export MESOS_PRINCIPAL="<mesos_principal>"
export MESOS_USERNAME="<mesos_user>"
export MESOS_PASSWORD="<mesos_password>"
export MESOS_MASTER="<mesos_master_server>:5050"
export LOGLEVEL="DEBUG"

go run init.go app.go

Dies startet das Framework. Es wird sich an den Mesos Master anmelden. Nach wenigen Sekunden kann man “test_framework” als Eintrag in der Mesos UI sehen. Gleichzeitig öffnet das Framework einen Port auf 10000 auf der Maschine auf dem das Framework gestartet wurde.

Task Starten

Command

Mit dem “Command” aufruf, wird ein auf dem System vorhandener Befehl aufgerufen.

curl -X POST 127.0.0.1:10000/v0/command/start\?cmd\=python%20-m%20SimpleHTTPServer%209033

Mesos Container

Um einen Mesos Container zu starten, muss man der nachfolgenden Aufruf angepasst werden. “Value” bekommt dabei eine URL von dem aus ein Binary heruntergeladen wird. Das Binary wird dann, über “Command” aufgerufen.

 curl -X POST 127.0.0.1:10000/v0/container/start -d '{ "command": "./test", "uris": [{ "value": "https://<URL>/test", "extract": false, "executable": true, "cache": false }]}'

Auf einem Mesos Agent wird man nun einen entsprechenden Prozess erkennen können.

GIT

Das Framework findet man bei uns im GIT und steht unter GPL.