Firecracker Executor for Apache Mesos



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.

Funktionsweise Firecracker Executor

MicroVM Image erstellen

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 

Installation Firecracker Executor

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 Deploy

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