Abstract
Ne rêvez-vous pas secrètement de pouvoir déployer directement, et surtout facilement, des images de conteneurs sur vos machines physiques ou virtuelles sans avoir recours à un orchestrateur ni même avoir besoin d’un système d’exploitation hôte ?
C’est maintenant possible grâce à boot2container (b2c pour les initiés) : un initrd open source d’à peine 20 Mo stocké en RAM et embarquant Podman, entièrement configurable via la ligne de commande du noyau Linux. Outre la liberté dans le choix et la configuration des conteneurs à exécuter, vous pourrez également configurer de nombreux paramètres systèmes tels que le réseau, l’horloge, le swap, le clavier, les volumes (avec ou sans chiffrement) ou encore y synchroniser vos buckets S3.
Démarrez ainsi une Alpine en 1 ligne : qemu-system-x86_64 -m 512M -accel kvm -kernel b2c-kernel -initrd b2c-initrd.xz -append 'b2c.run="-ti docker.io/alpine:latest" b2c.keymapfr'
boot2container est né du besoin de Valve de tester des pilotes pour la Steam Deck de la façon la plus simple, native et reproductible possible.
b2c n’est néanmoins pas limité à ce seul cas d’usage comme le montre les exemples suivants :
- Flexibilité : plus besoin d’installer et maintenir plusieurs systèmes d’exploitation, seules des images stockées sur un registry suffisent pour démarrer un parc entier de machines ;
- Fiabilité : netbooter vos machines en périphérie de réseau via iPXE pour démarrer sur la dernière image disponible ;
- Immuabilité : votre contexte d’exécution est rigoureusement identique à chaque nouveau démarrage, vous seul décidez les données qui seront pérennes.