Introduction
Firecracker est un outil open-source développé par Amazon Web Services pour exécuter des microVMs ultra-légères, offrant isolation et performances proches du bare-metal, idéal pour les workloads serverless et les conteneurs à haute densité.
Prérequis
- Linux avec noyau >= 4.14 (support eBPF/KVM)
- Accès root pour KVM
curl
etjq
installés
Installation de Firecracker
1. Télécharger la dernière release
curl -LO https://github.com/firecracker-microvm/firecracker/releases/download/v1.5.0/firecracker-v1.5.0-x86_64-vmlinux.bin
curl -LO https://github.com/firecracker-microvm/firecracker/releases/download/v1.5.0/jailer-v1.5.0-x86_64
chmod +x firecracker-v1.5.0-x86_64-vmlinux.bin jailer-v1.5.0-x86_64
Création d’une microVM
1. Préparer le rootfs
mkdir rootfs
docker export $(docker create busybox) | tar -C rootfs -xvf -
2. Configuration du microVM
Créez vm-config.json
:
{
"boot-source": {
"kernel_image_path": "firecracker-v1.5.0-x86_64-vmlinux.bin",
"boot_args": "ro console=ttyS0 reboot=k panic=1 pci=off"
},
"drives": [
{
"drive_id": "rootfs",
"path_on_host": "rootfs.ext4",
"is_root_device": true,
"is_read_only": false
}
],
"machine-config": {
"vcpu_count": 1,
"mem_size_mib": 512,
"ht_enabled": false
}
}
Générez l’image ext4 :
truncate -s 50M rootfs.ext4
mkfs.ext4 rootfs.rootfs
sudo mount -o loop rootfs.ext4 rootfs
sudo cp -r rootfs/* rootfs/
sudo umount rootfs
3. Lancement du microVM
./jailer-v1.5.0-x86_64 --id microvm1 --exec-file ./firecracker-v1.5.0-x86_64-vmlinux.bin
Dans un autre terminal :
curl --unix-socket /tmp/firecracker-microvm1.socket -i -X PUT "http://localhost/boot-source" -H "
illir lum" -d '{ ... }'
Utilisation avancée
- Snapshots : sauvegarde et restauration rapide
- Clonage : démarrer plusieurs microVMs à partir d’un snapshot
- Sécurité : microVMs non partagées, grains minimes
- Supervision : exporter métriques via Prometheus
Conclusion
Firecracker vous permet d’isoler vos workloads dans des microVMs légères et sécurisées, optimisant l’isolation et la densité de déploiement pour des architectures cloud modernes.