Mit dem Firecracker Executor für Apache Mesos wird es möglich, MicroVM’s in einer Mesos Umbung zu schedulen.
Die Funktionsweise ist dem folgenden Bild zu entnehmen. Dabei stellt dies lediglich einen von vielen Möglichen wegen dar. Der Executor ist so offen wie möglich entwickelt um sich den Bedürfnissen der jeweiligen Umgebung anzupassen.
Um Firecracker nutzen, benötigen wir ein VM Image mit den von uns benötigten Komponenten. Der nachfolgende Agent dient Dabei als Beispiel:
> git clone https://github.com/AVENTER-UG/vmm-agent.git
> make
Im ersten Schritt compilieren wir den firecracker executor.
> git clone https://github.com/AVENTER-UG/mesos-firecracker-executor.git
> make submodule-update
> make
Das Makefile erstellt ein Dockerimage welches den Executor wie auch alle benötigten Komponenten beinhaltet. Dieses Dockerimage wird als Executor in Apache Mesos ausgeführt.
Workload für Custom Executor kann z.B. über Marathon als auch über mesos-compose Framework deployed werden. Das nachfolgende Beispiel bedient das mesos-compose Framework:
version: '3.9'
services:
test1:
image: avhost/firecracker:latest
command: "sleep 1"
environment:
- FIRECRACKER_WORKDIR=/tmp
- FIRECRACKER_AGENT_PORT=8080
cap_add:
- SYS_ADMIN
- NET_ADMIN
privileged: true
labels:
biz.aventer.mesos_compose.executor: "/tmp/mesos-firecracker-executor"
pull_policy: always
restart: no