Mini DCOS

15. March 2022 Andreas Peters

DC/OS wurde seitens Mesosphere (D2IQ) ab gekündigt. Dennoch kann es aus vielerlei Gründen hilfreich sein, eine MiniDCOS Umgebung lokal zu betreiben um für den Übergang der Migration patche zu entwickeln und zu testen. Die folgenden Schritte sollen dabei helfen, eine entsprechende Umgebung aufzubauen.

Voraussetzung

Als erstes benötigen wir eine Virtuelenv Umgebung für Python 3.6. Neue Versionen könnten funktionieren, haben wir jedoch nicht getestet.

cd ~/.virtualenv
virtualenv dcos --python=python3.6
pip3 install --user --upgrade git+https://github.com/dcos/dcos-e2e.git

Prüfen der Umgebung.

minidcos docker doctor

Cluster erstellen und Manager sowie Agent fixen

Erstellen des DCOS clusters.

wget https://downloads.dcos.io/dcos/stable/dcos_generate_config.sh
minidcos docker create ./dcos_generate_config.sh --agents 1 --variant oss

Die latest stable Version von dcos_generate_config.sh beinhaltet eine Inkompatiblität zu neueren Docker Versionen. Den Workaround dafür haben wir in einem weiteren Schritt beschrieben. Um sich dies zu ersparen, haben wir eine entsprechende dcos_generate_config.sh erzeugt und hier https://github.com/andreaspeters/dcos/releases/download/fix-mesos/dcos_generate_config.sh bereitgestellt.

Nach dem erfolgreichen erstellen des Clusters, legen wir einen User mit einer EMail Adresse an welche bei Google oder Github registriert ist.

docker exec -it dcos-e2e-default-5edd0-master-0 /bin/bash
dcos-shell
dcos_add_user.py <EMAIL>

Als nächstes versuchen wir uns mit dem neuen Account anzumelden.

minidcos docker web

Da der Mesos Agent noch nicht läuft, müssen wir hier zunächst einen Bug in der Konfiguration entfernen.

docker exec -it dcos-e2e-default-5edd0-agent-0 /bin/bash
vi /opt/mesosphere/etc/mesos-slave-common
MESOS_ISOLATION=filesystem/linux,network/cni,cgroups/cpu,cgroups/mem,cgroups/blkio,cgroups/devices,disk/du,docker/runtime,volume/sandbox_path,volume/host_path,posix/rlimits,namespaces/pid,volume/csi,

Die MESOS_ISOLATION Zeile ist hierbei gegen die hier angegebene auszutauschen. Ist dies erfolgt, startet wenig später der Agent.

DCOS Cli

Da wir nun ein funktionierendes DCOS am laufen haben, benötigen wir als nächsten Schritt die CLI.

curl https://downloads.dcos.io/binaries/cli/linux/x86-64/dcos-1.12/dcos -o ~/.virtualenvs/dcos/bin/dcos
chmod +x ~/.virtualenvs/dcos/bin/dcos

Mit der CLI müssen wir uns zunächst am DCOS Cluster anmelden. Dies erfolgt via OpenID.

dcos cluster setup http://172.17.0.2

Die URL welche automatisch geöffnet wird, hat leider einen Fehler im redirect. Daher nutzen wir den nachfolgenden Link.

http://172.17.0.2/login?redirect_uri=urn:ietf:wg:oauth:2.0:oob

Nach der Übernahme des Authentication Tokens haben wir via CLI zugriff auf den Cluster.

> dcos node
Extracting "dcos-core-cli"...
HOSTNAME        IP                         ID                    TYPE             REGION  ZONE
172.17.0.3   172.17.0.3  836d1d97-4c42-4feb-847e-979ec4502aad-S0  agent             None   None
master.mesos.  172.17.0.2    836d1d97-4c42-4feb-847e-979ec4502aad   master (leader)   None   None