Imaginez un monde où les machines virtuelles et les conteneurs cohabitent en harmonie. La sécurité parfaite des VM, la rapidité des conteneurs… On ne prend que le positif de chaque côté.

Kata Containers est un projet open source un peu méconnu qui vise à combiner les avantages des machines virtuelles et des conteneurs. En utilisant des technologies de virtualisation légères telles que les MicroVMs qu’on a déjà vu dans cet article.
Kata Containers permet d’exécuter des conteneurs dans un environnement virtuel sécurisé, pour offrir une sécurité renforcée que les conteneurs de base ne peuvent pas fournir.
Comment ça marche ?
Techniquement, Kata Containers utilise des hyperviseurs légers pour créer des machines virtuelles qui exécutent les conteneurs. Chaque conteneur s’exécute dans sa propre VM, mais super légère, comme on a expliqué dans l’article sur les MicroVMs. Et donc l’isolation est beaucoup plus forte que dans les conteneurs classiques.
Car comme vous savez, les conteneurs partagent le même noyau du système d’exploitation, si jamais un “hacker” arrive à mettre la main sur un conteneur, il peut potentiellement accéder à tous les autres conteneurs sur le même hôte. Avec Kata Containers, chaque conteneur est isolé dans sa propre VM, ce qui rend beaucoup plus difficile pour un attaquant de compromettre l’ensemble du système.
Vous me direz, “Mais pourquoi ne pas utiliser simplement des VM classiques ?”. Eh bien, les Kata Containers sont conçus pour être aussi légers et rapides que les conteneurs traditionnels. Ils démarrent en quelques secondes, généralement en 1 ou 2 secondes, ce qui est comparable aux conteneurs Docker. Cela permet de bénéficier de la sécurité des VM sans sacrifier la rapidité et l’efficacité des conteneurs.
C’est une solution utilisée notamment par les fournisseurs cloud, notamment ceux qui entraînent des modèles IA, car ils ont besoin d’une sécurité renforcée pour protéger les données sensibles tout en maintenant des performances élevées.
C’est quand même un projet passionnant qui mérite d’être suivi de près.
Installation
Jusqu’à présent, je vous ai toujours habitué à faire une partie pratique dans mes articles, donc on ne va pas faire d’exception ici.
Pour installer Kata Containers, vous pouvez suivre les instructions officielles sur le site du projet. Voici un aperçu rapide des étapes d’installation :
Tout d’abord il vous faut bien entendu un système qui supporte la virtualisation, car Kata Containers utilise des hyperviseurs légers et qui dit hyperviseur dit virtualisation. Donc assurez-vous que votre CPU supporte la virtualisation (VT-x pour Intel, AMD-V pour AMD).
Une fois cela OK, vous pouvez installer Kata Containers avec les commandes suivantes :
# Télécharger le script d'installation
wget https://raw.githubusercontent.com/kata-containers/kata-containers/main/utils/kata-manager.sh
# Rendre le script exécutable
chmod +x kata-manager.sh
# Lancer le script d'installation
sudo ./kata-manager.sh
Une fois l’installation terminée, vous pouvez vérifier que Kata Containers est bien installé en exécutant la commande suivante :
./kata-manager.sh -l
# Output
INFO: Getting version details
INFO: Kata Containers: installed version: Kata Containers containerd shim (Golang): id: "io.containerd.kata.v2", version: 3.15.0, commit: c0632f847fe706090d64951ba6b68865a416bdb4
INFO: Kata Containers: latest version: 3.15.0
INFO: containerd: installed version: containerd github.com/containerd/containerd v1.7.27 05044ec0a9a75232cad458027ca83437aae3f4da
INFO: containerd: latest version: v2.0.4
INFO: Docker (moby): installed version: <not installed>
INFO: Docker (moby): latest version: v28.0.4
Et c’est bon ! C’est pas plus compliqué que ça.
Notre premier conteneur Kata
Pour tester les kata conteneurs on va faire un test simple, comme vous savez, les conteneurs partagent le même noyau du système d’exploitation du host, donc si dans un conteneur je lance la commande uname -a, je vais obtenir le noyau du host.
Et donc au contraire si je lance la même commande dans un conteneur Kata, je devrais obtenir le noyau de la VM. Qui sera très probablement différent de celui du host.
Pour lancer un conteneur Kata, vous pouvez utiliser la commande suivante :
mohamad@pc-mohamad:~# ctr run --runtime io.containerd.kata.v2 --rm docker.io/rockylinux/rockylinux:latest rocky-kata uname -a
Linux localhost 6.12.13 ...
On utilise ctr car par défaut, kata containers utilise containerd comme runtime. Mais si jamais aussi on aurait pu l’installer avec docker, mais en utilisant le flag -D lors de l’installation.
Maintenant sur un conteneur classique, si je lance la même commande :
mohamad@pc-mohamad:~# ctr run --rm docker.io/rockylinux/rockylinux:latest rocky-défaut uname -a
Linux dev-master 6.8.0-57-generic
Donc un noyau différent, et donc on a bien un conteneur Kata qui s’exécute dans une VM !
Conclusion
Dans cet article, nous avons vu comment installer et utiliser Kata Containers, une solution de conteneurisation qui offre une isolation renforcée en exécutant chaque conteneur dans sa propre machine virtuelle. Cette approche présente de nombreux avantages en termes de sécurité et de gestion des ressources, tout en restant compatible avec les outils et les workflows existants basés sur les conteneurs. N’hésitez pas à explorer davantage cette technologie et à l’intégrer dans vos projets pour bénéficier de ses atouts.
Et sur ce, je vous dis à la prochaine pour un nouvel article, et n’oubliez pas que vous pouvez m’envoyer un message sur LinkedIn, j’y répondrai avec un grand plaisir !