Kubernetes sur Mac M3 : Pourquoi j'ai dit adieu à VirtualBox pour QEMU
Par Nicolas DELAHAYE | v.1974 | Architecte & Coach Agile
TAGS: #Kubernetes #CKA #CKS #QEMU #Vagrant #Ansible #MacOS #DevSecOps
1. Le défi : 3 nodes Kubernetes sans vider mon compte AWS
Dans le cadre de ma préparation aux certifications CKA (Certified Kubernetes Administrator) et CKS (Security Specialist) de la Linux Foundation, j'ai dû faire face à un problème de riche.
Le cursus propose de monter un lab de 3 nodes (1 Control Plane et 2 Workers). Jusque-là, tout va bien. Sauf que la formation suggère d'utiliser Google Cloud (GCP) ou Amazon AWS. En tant qu'entrepreneur et techos pragmatique, payer des instances à l'heure alors que j'ai un MacBook Pro 2024 (puce M3) flambant neuf sous les doigts, ça me pique un peu.
Pourquoi louer chez Bezos ce que je peux héberger localement ?
2. VirtualBox : Le vieux compagnon devenu trop lourd
Mon premier réflexe ? VirtualBox. On se connaît depuis 15 ans. Mais soyons honnêtes : sur les architectures modernes (Silicon Apple), VirtualBox est devenu un "pachyderme".
C'est lourd, ça consomme des ressources de manière déraisonnable, et la configuration réseau est parfois un vrai casse-tête chinois selon l'infrastructure de l'hôte. De plus, sur les puces ARM (M1/M2/M3), le support est encore loin d'être aussi fluide qu'à l'époque d'Intel.
Je voulais une solution :
- Open Source (éthique oblige).
- Légère (je ne veux pas entendre mes ventilos décoller).
- Simple à automatiser via Vagrant et Ansible.
- Gratuite (exit VMware Fusion ou Parallels Desktop).
3. La solution : QEMU, le moteur de virtu pur et dur
Si vous venez du monde Linux, vous connaissez forcément QEMU. C'est l'émulateur/hyperviseur de référence. La bonne nouvelle ? Il est parfaitement porté sur Mac.
Certes, QEMU n'a pas la "jolie" interface graphique de VirtualBox, mais est-ce qu'on est là pour cliquer sur des boutons ou pour faire du DevSecOps ?
L'intérêt majeur de QEMU, c'est sa modularité. Comme j'utilise Vagrant pour piloter mes VMs et Ansible pour le provisionning (le "Craftmanship" de l'infrastructure), je n'ai besoin d'aucune interface. Tout se passe dans mes fichiers de configuration.
// Note : Avec QEMU, j'ai une gestion propre du réseau interne et un service NAT efficace, sans les "verrues" de code spécifiques qu'on doit parfois ajouter pour VirtualBox.
4. Installation et Mise en œuvre
Sur Mac, c'est d'une simplicité déconcertante grâce à Brew :
$ brew install qemu
Une fois installé, QEMU s'intègre comme un charme avec le provider Vagrant (souvent via libvirt ou des plugins dédiés comme vagrant-qemu).
vagrant plugin install vagrant-qemu
Mon workflow est désormais immuable :
- Je modifie mon Vagrantfile.
vagrant up(QEMU lance mes 3 nodes en arrière-plan).- Ansible déploie mon cluster Kubernetes (Kubeadm).
- Si je casse tout ?
vagrant destroy -f && vagrant up. En 5 minutes, je repars sur une base saine.
5. Conclusion : Moins de clics, plus de code
Passer de VirtualBox à QEMU, c'est un peu comme passer d'un traitement de texte lourd à du Markdown : on perd le superflu pour gagner en efficacité et en contrôle. Pour préparer mes certifs CKA/CKS, c'est le setup idéal : robuste, reproductible et totalement gratuit.
Si vous voulez jeter un œil à ma configuration complète (Vagrantfile + Playbooks Ansible), tout est disponible sur mon GitHub.
[ EOF - End Of File ]
// RÉFÉRENCES SYSTEME :