Kata Con­tai­ners est un projet d’une com­mu­nauté open source in­dé­pen­dante qui a travaillé à combiner les avantages d’un système de con­te­neurs avec ceux des machines vir­tuelles, plus simples à utiliser.

Découvrez ce qui se cache derrière ce projet et comment fonc­tionne Kata Con­tai­ners. En outre, découvrez les avantages et in­con­vé­nients de ce projet ainsi que les scénarios d’ap­pli­ca­tion les plus po­pu­laires du transit sécurisé de con­te­neurs.

Kata Con­tai­ners, qu’est-ce c’est ?

Le projet Kata Con­tai­ners, qui a vu le jour en décembre 2007, a pour objectif de dé­ve­lop­per une machine virtuelle légère qui ressemble dans le design comme dans l’ex­ploi­ta­tion à un conteneur. Les con­te­neurs Kata sont donc très simples à utiliser et ultra-com­pa­tibles, ils peuvent supporter une forte charge de travail tout en bé­né­fi­ciant de très hauts standards de sécurité. Pour y parvenir, la com­mu­nauté s’appuie à l’extérieur sur un isolement plus fort et à l’intérieur sur la tech­no­lo­gie de vir­tua­li­sa­tion ma­té­rielle comme deuxième ligne de défense.

Le projet Kata Con­tai­ners est financé et géré par OpenStack Foun­da­tion (OSF) qui s’engage au niveau in­ter­na­tio­nal pour le dé­ve­lop­pe­ment et la mise en place d’in­fras­truc­tures ouvertes de Cloud computing. Le code de conduite de l’OSF est donc une référence majeure pour le travail col­la­bo­ra­tif de la com­mu­nauté open source. Le code du projet est hébergé sur GitHub sous la licence Apache 2. De grandes en­tre­prises telles que Google et Microsoft sou­tien­nent et par­ti­ci­pent au projet Kata.

Une pré­sen­ta­tion détaillée de Kata Con­tai­ners de 30 minutes a été publiée par la OpenStack Foun­da­tion sous la forme d’une vidéo YouTube :

Comment fonc­tionne Kata Con­tai­ners ?

À quoi ressemble l’ar­chi­tec­ture de Kata Con­tai­ners et comment fonc­tionne ce projet ? Pour répondre à cette question, il faut retourner aux origines du projet : en décembre 2017, la com­mu­nauté est parvenue à fusionner et mettre à l’échelle, le meilleur d’Intel Clear Con­tai­ners (projet d’Intel pour des con­te­neurs Linux sécurisés) avec Hyper runV (temps d’exécution basé sur un hy­per­vi­seur pour les projets de con­te­neurs ouverts). Ou pour résumer : c’est la rencontre des per­for­mances d’Intel avec l’in­dé­pen­dance vis-à-vis des pla­te­formes d’Hyper.

L’un des points majeurs de chaque système de con­te­neurs est la sécurité. Dans la mesure où les con­te­neurs peuvent être empilés ou su­per­po­sés, l’aspect sécurité est souvent difficile à garantir. Intel et Hyper visent donc tous deux, de manière dif­fé­rente, mais avec des résultats com­pa­rables, à obtenir un haut degré de flexi­bi­lité dans un en­vi­ron­ne­ment de con­te­neurs : la simple su­per­po­si­tion de formats de con­te­neurs comme Ku­ber­netes sur OpenStack ou in­ver­se­ment est possible de même que la su­per­po­si­tion complexe de Ku­ber­netes sur OpenStack sur Ku­ber­netes. Cette flexi­bi­lité dans la con­cep­tion de l’ar­chi­tec­ture souhaitée simplifie gran­de­ment l’uti­li­sa­tion des con­te­neurs Kata sans faire de con­ces­sions sur la sécurité.

Avec Kata, vous pouvez mettre en œuvre à la fois l’isolation des VM au niveau du conteneur et l’isolation des con­te­neurs par la vir­tua­li­sa­tion ma­té­rielle. Dans le cas de Ku­ber­netes, l’isolation VM ne se fait pas au niveau conteneur, mais au niveau Podman ou pods, car pour Ku­ber­netes on parle de pods et pas de con­te­neurs. Dans la suite, nous uti­li­se­rons cependant le mot conteneur pour plus de clarté.

Conseil

La mise en place et le fonc­tion­ne­ment de systèmes de con­te­neurs peuvent être très complexes, car de nombreux con­te­neurs doivent gé­né­ra­le­ment être mis à dis­po­si­tion sur dif­fé­rents or­di­na­teurs. Avec Managed Ku­ber­netes de IONOS, vous pouvez plus fa­ci­le­ment planifier, organiser, déployer et mettre vos con­te­neurs à l’échelle selon vos besoins.

À quoi ressemble l’ar­chi­tec­ture de Kata Con­tai­ners ?

La com­mu­nauté a adopté une approche orientée vers la sim­pli­cité maximale et cela se retrouve dans l’ar­chi­tec­ture de Kata Con­tai­ners, qui fournit es­sen­tiel­le­ment les six com­po­santes suivantes :

  1. Agent
  2. Durée
  3. Proxy
  4. Shim (extension de la com­pa­ti­bi­lité pour les ap­pli­ca­tions)
  5. Noyau (noyau du système d’ex­ploi­ta­tion)
  6. Pack avec QEMU 2.9 (logiciel de vir­tua­li­sa­tion gratuit)

Ces pro­prié­tés rendent Kata in­dé­pen­dant, ultra-com­pa­tible et très sûr. En plus de l’extension x86_64, l’ar­chi­tec­ture peut également prendre en charge AMD64, ARM ainsi que les séries IBM p et IBM z. De plus, Kata Con­tai­ners permet l’uti­li­sa­tion de plusieurs hy­per­vi­seurs comme QEMU, NEMU et Fi­re­cra­cker. Une in­té­gra­tion dans un projet con­tai­nerd est également possible.

La com­pa­ti­bi­lité de Kata Con­tai­ners

Kata 1.10 est com­pa­tible avec Docker Community Edition, mais prend en charge tous les standards du secteur comme le format conteneur OCI, les in­ter­faces CRI dans Ku­ber­netes, ainsi que quelques tech­no­lo­gies de vi­sua­li­sa­tion plus anciennes comme CRI-O (1.10 commit 393429 ou CRI-Con­tai­nerd version 1.0.0) ou OCI Runtime Spe­ci­fi­ca­tion (v1.0.0-rc5).

Parmi les systèmes d’ex­ploi­ta­tion supportés par Kata Con­tai­ners, on peut citer :

  • CentOS (7)
  • Debian (9, 10)
  • Fedora (28, 29, 30)
  • Ubuntu (16.04, 18.04)
  • Red Hat En­ter­prise Linux (7)
  • OpenSUSE (Leap, Tum­ble­weed)

Qu’est-ce qui dif­fé­ren­cie Kata Con­tai­ners des con­te­neurs habituels ?

Le principal atout de Kata Con­tai­ners, c’est qu’il allie sim­pli­cité et per­for­mances. L’im­bri­ca­tion des con­te­neurs dans des machines vir­tuelles à part entière n’est plus né­ces­saire. La com­mu­nauté s’est con­cen­trée ici sur des in­ter­faces standard, qui fa­ci­li­tent gran­de­ment l’accès et la connexion. Les per­for­mances restent aussi cons­tantes qu’un conteneur Linux standard, mais n’ont pas le contrôle habituel des per­for­mances d’une machine virtuelle standard en raison d’une isolation accrue. Le schéma suivant illustre les avantages de cette structure.

Cela signifie que le projet open source a déjà réalisé son objectif d’un en­vi­ron­ne­ment de con­te­neurs open source dont les com­po­sants se com­por­tent comme des con­te­neurs, mais qui offrent les per­for­mances et la sécurité des VM. Kata Con­tai­ners a déjà réussi à surmonter les préoc­cu­pa­tions de longue date con­cer­nant les con­te­neurs, par exemple en ce qui concerne la mise à l’échelle.

La sécurité de Kata Con­tai­ners

Les con­te­neurs tra­di­tion­nels sont légers, rapides et s’intègrent fa­ci­le­ment. Ils pré­sen­tent cependant des risques de sécurité notamment s’ils sont dans un système d’ex­ploi­ta­tion unique : si les con­te­neurs partagent un noyau, un chemin d’entrée/sortie, le même réseau et la même mémoire, il suffit d’attaquer un conteneur pour mettre en danger tous les autres.

Il n’en va pas de même pour kata Con­tai­ners : la machine virtuelle fonc­tionne sur un noyau dédié (noyau du système d’ex­ploi­ta­tion), ce qui permet de séparer les processus du réseau et des E/S, ainsi que de la mémoire. En plus de l’isolation déjà forte, il est possible d’utiliser en plus une isolation renforcée par le matériel avec les ex­ten­sions de vir­tua­li­sa­tion VT.

Kata Con­tai­ners : avantages et in­con­vé­nients

Il existe de nombreux arguments en faveur de l’ambitieux projet open source de la Fondation OpenStack. Même Clear Linux (Intel) s’est séparé de sa propre tech­no­lo­gie de container et prend déjà en charge Kata Con­tai­ners avec beaucoup de succès. Les prin­ci­paux arguments ont déjà été énumérés ci-dessus :

  • Com­pa­ti­bi­lité ex­cep­tion­nelle
  • Uti­li­sa­tion simple
  • Per­for­mances élevées
  • Très hauts standards de sécurité

Le faible besoin en élec­tri­cité même lors des pics de per­for­mance est un autre argument en sa faveur.

Mais Kata ne convient pas à toutes les uti­li­sa­tions. C’est un système spécial avec des li­mi­ta­tions in­hé­rentes à sa con­cep­tion. Cela inclut notamment les opé­ra­tions qu’une machine virtuelle ne peut pas effectuer ainsi que les res­tric­tions qui seront corrigées dans les futures mises à jour. Pour une liste détaillée des li­mi­ta­tions, consultez la do­cu­men­ta­tion of­fi­cielle sur GitHub. Ac­tuel­le­ment, Kata Con­tai­ners n’est dis­po­nible que pour les dis­tri­bu­tions Linux.

Un autre in­con­vé­nient non né­gli­geable : Kata n’en est qu’à ses débuts. Néanmoins, la base technique est pro­met­teuse et est déjà utilisée pour de nom­breuses ap­pli­ca­tions.

Dans quels cas est utilisé Kata Con­tai­ners ?

Comme mentionné au début de l’article, la com­mu­nauté adhère au code de conduite de l’OSF. Cela inclut la gestion ouverte de l’ensemble du projet et surtout du code source. Cette ouverture est garantie par la com­bi­nai­son des deux bases de code source ouvertes intégrées et vir­tua­li­sées. Parmi les nombreux soutiens du projet, on trouve notamment Ku­ber­netes, Docker, OCI, CRI, CNI, QEMU, KVM et OpenStack.

Clear Con­tai­ners et runV, les bases tech­niques de Kata Con­tai­ners, sont utilisés par de grandes en­tre­prises dans le monde entier, notamment JD.com, l’une des boutiques en ligne les plus po­pu­laires en Chine.

Les con­te­neurs Kata fonc­tion­nent gé­né­ra­le­ment mieux lorsqu’on a besoin de con­te­neurs qui sont destinés à fonc­tion­ner sur des noyaux dif­fé­rents. Cela inclut des domaines d’ap­pli­ca­tion tels que l’in­té­gra­tion et le dé­ploie­ment continus (CI/CD), le edge computing, les fonctions de réseau vir­tua­li­sées ainsi que les con­te­neurs en tant que Service (CaaS). Kata est également idéal pour les ap­pli­ca­tions de niche, car aucun autre conteneur n’est aussi simple, économe en termes de res­sources, sûr et flexible.

Aller au menu principal