URL: https://linuxfr.org/news/podman-et-docker-dans-cloonix Title: Podman et Docker dans cloonix Authors: clownix Ysabeau đŸ§¶, Pierre Jarillon et palm123 Date: 2022ćčŽ12月30æ—„T09:54:25+01:00 License: CC By-SA Tags: podman, docker et cloonix Score: 20 Cloonix est un logiciel de virtualisation basĂ© principalement sur openvswitch dont le but est de faciliter la construction graphique d’un rĂ©seau virtuel avec visualisation de la topologie et interaction par [[IHM]] graphique sur cette topologie. Lors de l’une des derniĂšres dĂ©pĂȘches de titre « Cloonix et les conteneurs » du 17/01/22, je vous ai parlĂ© du nouvel objectif d’amĂ©lioration de cloonix, commencĂ© en fin 2021 : l’intĂ©gration de la techno des conteneurs dans cloonix. En vue d’atteindre ce but et d’en comprendre les mĂ©canismes internes, il fallait commencer par intĂ©grer dans cloonix la techno de base des conteneurs, et pour cela en premier lieu trouver le bout de code le plus lĂ©ger ou encore le plus dĂ©pouillĂ© qui soit capable de faire tourner un conteneur. ---- [cloonix](http://clownix.net) [git cloonix](https://github.com/clownix/cloonix) ---- Pour Docker, la brique de base la plus proche des fondations dont l’action se limite Ă  faire tourner un conteneur se nomme gĂ©nĂ©riquement « low level runtime » et le nom de son implĂ©mentation est « runc ». Il s’avĂšre que runc n’est pas en C et comme cloonix est en C et n’utilise que des open sources en C, j’ai prĂ©fĂ©rĂ© chercher un « low level runtime » de mĂȘme fonctionnalitĂ© que runc mais en C. C’est ainsi que je suis tombĂ© sur crun qui est exactement cela. Une fois que crun a tournĂ© correctement dans cloonix, autour du mois d’octobre 2022, il Ă©tait logique de commencer Ă  s’attaquer Ă  des plus grands noms dans le domaine des conteneurs. Le code de cloonix supportant crun prend en charge trois blocs fonctionnels qui transforment crun en conteneur : 1. gĂ©nĂ©ration d’un fichier de configuration suivant le format OCI (Open Container Initiative), 1. gestion des montages permettant Ă  crun d’avoir un systĂšme de fichier racine Ă  partir d’une image et, 3. crĂ©ation des interfaces ethernet fournies au conteneur, ces interfaces Ă©tant ensuite gĂ©rĂ©es par l’openvswitch intĂ©grĂ© Ă  cloonix. Pour ce qui est de Docker/Podman, le fichier de configuration OCI et les montages des images sont dĂ©jĂ  gĂ©rĂ©s par Docker/Podman, la prise en charge par cloonix de Docker/Podman se limite donc Ă  assurer la gestion des interfaces ethernets, pour cela, le code dĂ©jĂ  construit pour crun a Ă©tĂ© tout Ă  fait adaptĂ© pour gĂ©rer aussi les 2 autres types de conteneurs. Profitons de cette dĂ©pĂȘche pour donner un aperçu de cette gestion des interfaces ethernets dans le cas des conteneurs. Cloonix n’est guĂšre qu’un configurateur Ă©voluĂ© qui utilise la richesse apportĂ©e par l’écosystĂšme de l’open-source et qui tire profit principalement d’openvswitch. Cloonix est lancĂ© avec un nom de rĂ©seau, openvswitch utilise ce nom comme « net namespace », c’est-Ă -dire que le logiciel openvswitch est plongĂ© dans un espace rĂ©seau privĂ©. Quand il faut crĂ©er les interfaces d’un conteneur, la premiĂšre Ă©tape est la crĂ©ation par une commande Linux d’une paire de ports dans le systĂšme, voila la commande pour faire deux interfaces pairĂ©es « ip link add name paire1 type veth peer paire2 ». Cette commande Ă©tant effectuĂ©e, un paquet Ethernet Ă©mis dans paire1 est reçu par paire2 et rĂ©ciproquement. En seconde Ă©tape, paire1 est plongĂ©e dans l’espace privĂ© rĂ©seau d’openvswitch et paire2 est plongĂ©e dans l’espace privĂ© rĂ©seau du conteneur, ces plongeons dans diffĂ©rents espaces n’affectent pas le passage d’un paquet Ethernet d’une paire vers l’autre, c’est un « trou de ver » entre deux univers. En troisiĂšme Ă©tape, quand l’utilisateur veut connecter l’interface du conteneur, cloonix demande Ă  openvswitch de le faire Ă  travers un bridge de son espace rĂ©seau privĂ©, c’est ainsi que la magie d’openvswitch peut se faire. Pour terminer, quelques chiffres de performance mesurĂ©es par iperf3 sur un Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz : kvm Ă  kvm : 20 Gigabits/seconde et conteneur Ă  conteneur: 50 Gigabits/seconde.

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /