Kata Containers : notions de base, fonctionnalités et domaines d’application

Kata Containers est un projet d’une communauté open source indépendante qui a travaillé à combiner les avantages d’un système de conteneurs avec ceux des machines virtuelles, plus simples à utiliser.

Découvrez ce qui se cache derrière ce projet et comment fonctionne Kata Containers. En outre, découvrez les avantages et inconvénients de ce projet ainsi que les scénarios d’application les plus populaires du transit sécurisé de conteneurs.

Kata Containers, qu’est-ce c’est ?

Le projet Kata Containers, qui a vu le jour en décembre 2007, a pour objectif de développer une machine virtuelle légère qui ressemble dans le design comme dans l’exploitation à un conteneur. Les conteneurs Kata sont donc très simples à utiliser et ultra-compatibles, ils peuvent supporter une forte charge de travail tout en bénéficiant de très hauts standards de sécurité. Pour y parvenir, la communauté s’appuie à l’extérieur sur un isolement plus fort et à l’intérieur sur la technologie de virtualisation matérielle comme deuxième ligne de défense.

Le projet Kata Containers est financé et géré par OpenStack Foundation (OSF) qui s’engage au niveau international pour le développement et la mise en place d’infrastructures ouvertes de Cloud computing. Le code de conduite de l’OSF est donc une référence majeure pour le travail collaboratif de la communauté open source. Le code du projet est hébergé sur GitHub sous la licence Apache 2. De grandes entreprises telles que Google et Microsoft soutiennent et participent au projet Kata.

Une présentation détaillée de Kata Containers de 30 minutes a été publiée par la OpenStack Foundation sous la forme d’une vidéo YouTube :

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.

Comment fonctionne Kata Containers ?

À quoi ressemble l’architecture de Kata Containers et comment fonctionne ce projet ? Pour répondre à cette question, il faut retourner aux origines du projet : en décembre 2017, la communauté est parvenue à fusionner et mettre à l’échelle, le meilleur d’Intel Clear Containers (projet d’Intel pour des conteneurs Linux sécurisés) avec Hyper runV (temps d’exécution basé sur un hyperviseur pour les projets de conteneurs ouverts). Ou pour résumer : c’est la rencontre des performances d’Intel avec l’indépendance vis-à-vis des plateformes d’Hyper.

L’un des points majeurs de chaque système de conteneurs est la sécurité. Dans la mesure où les conteneurs peuvent être empilés ou superposés, l’aspect sécurité est souvent difficile à garantir. Intel et Hyper visent donc tous deux, de manière différente, mais avec des résultats comparables, à obtenir un haut degré de flexibilité dans un environnement de conteneurs : la simple superposition de formats de conteneurs comme Kubernetes sur OpenStack ou inversement est possible de même que la superposition complexe de Kubernetes sur OpenStack sur Kubernetes. Cette flexibilité dans la conception de l’architecture souhaitée simplifie grandement l’utilisation des conteneurs Kata sans faire de concessions 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 conteneurs par la virtualisation matérielle. Dans le cas de Kubernetes, l’isolation VM ne se fait pas au niveau conteneur, mais au niveau Podman ou pods, car pour Kubernetes on parle de pods et pas de conteneurs. Dans la suite, nous utiliserons cependant le mot conteneur pour plus de clarté.

Conseil

La mise en place et le fonctionnement de systèmes de conteneurs peuvent être très complexes, car de nombreux conteneurs doivent généralement être mis à disposition sur différents ordinateurs. Avec Managed Kubernetes de IONOS, vous pouvez plus facilement planifier, organiser, déployer et mettre vos conteneurs à l’échelle selon vos besoins.

À quoi ressemble l’architecture de Kata Containers ?

La communauté a adopté une approche orientée vers la simplicité maximale et cela se retrouve dans l’architecture de Kata Containers, qui fournit essentiellement les six composantes suivantes :

  1. Agent
  2. Durée
  3. Proxy
  4. Shim (extension de la compatibilité pour les applications)
  5. Noyau (noyau du système d’exploitation)
  6. Pack avec QEMU 2.9 (logiciel de virtualisation gratuit)

Ces propriétés rendent Kata indépendant, ultra-compatible et très sûr. En plus de l’extension x86_64, l’architecture peut également prendre en charge AMD64, ARM ainsi que les séries IBM p et IBM z. De plus, Kata Containers permet l’utilisation de plusieurs hyperviseurs comme QEMU, NEMU et Firecracker. Une intégration dans un projet containerd est également possible.

La compatibilité de Kata Containers

Kata 1.10 est compatible avec Docker Community Edition, mais prend en charge tous les standards du secteur comme le format conteneur OCI, les interfaces CRI dans Kubernetes, ainsi que quelques technologies de visualisation plus anciennes comme CRI-O (1.10 commit 393429 ou CRI-Containerd version 1.0.0) ou OCI Runtime Specification (v1.0.0-rc5).

Parmi les systèmes d’exploitation supportés par Kata Containers, on peut citer :

  • CentOS (7)
  • Debian (9, 10)
  • Fedora (28, 29, 30)
  • Ubuntu (16.04, 18.04)
  • Red Hat Enterprise Linux (7)
  • OpenSUSE (Leap, Tumbleweed)

Qu’est-ce qui différencie Kata Containers des conteneurs habituels ?

Le principal atout de Kata Containers, c’est qu’il allie simplicité et performances. L’imbrication des conteneurs dans des machines virtuelles à part entière n’est plus nécessaire. La communauté s’est concentrée ici sur des interfaces standard, qui facilitent grandement l’accès et la connexion. Les performances restent aussi constantes qu’un conteneur Linux standard, mais n’ont pas le contrôle habituel des performances 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 environnement de conteneurs open source dont les composants se comportent comme des conteneurs, mais qui offrent les performances et la sécurité des VM. Kata Containers a déjà réussi à surmonter les préoccupations de longue date concernant les conteneurs, par exemple en ce qui concerne la mise à l’échelle.

La sécurité de Kata Containers

Les conteneurs traditionnels sont légers, rapides et s’intègrent facilement. Ils présentent cependant des risques de sécurité notamment s’ils sont dans un système d’exploitation unique : si les conteneurs 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 Containers : la machine virtuelle fonctionne sur un noyau dédié (noyau du système d’exploitation), 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 extensions de virtualisation VT.

Kata Containers : avantages et inconvé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 technologie de container et prend déjà en charge Kata Containers avec beaucoup de succès. Les principaux arguments ont déjà été énumérés ci-dessus :

  • Compatibilité exceptionnelle
  • Utilisation simple
  • Performances élevées
  • Très hauts standards de sécurité

Le faible besoin en électricité même lors des pics de performance est un autre argument en sa faveur.

Mais Kata ne convient pas à toutes les utilisations. C’est un système spécial avec des limitations inhérentes à sa conception. Cela inclut notamment les opérations qu’une machine virtuelle ne peut pas effectuer ainsi que les restrictions qui seront corrigées dans les futures mises à jour. Pour une liste détaillée des limitations, consultez la documentation officielle sur GitHub. Actuellement, Kata Containers n’est disponible que pour les distributions Linux.

Un autre inconvénient non négligeable : Kata n’en est qu’à ses débuts. Néanmoins, la base technique est prometteuse et est déjà utilisée pour de nombreuses applications.

Dans quels cas est utilisé Kata Containers ?

Comme mentionné au début de l’article, la communauté 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 combinaison des deux bases de code source ouvertes intégrées et virtualisées. Parmi les nombreux soutiens du projet, on trouve notamment Kubernetes, Docker, OCI, CRI, CNI, QEMU, KVM et OpenStack.

Clear Containers et runV, les bases techniques de Kata Containers, sont utilisés par de grandes entreprises dans le monde entier, notamment JD.com, l’une des boutiques en ligne les plus populaires en Chine.

Les conteneurs Kata fonctionnent généralement mieux lorsqu’on a besoin de conteneurs qui sont destinés à fonctionner sur des noyaux différents. Cela inclut des domaines d’application tels que l’intégration et le déploiement continus (CI/CD), le edge computing, les fonctions de réseau virtualisées ainsi que les conteneurs en tant que Service (CaaS). Kata est également idéal pour les applications de niche, car aucun autre conteneur n’est aussi simple, économe en termes de ressources, sûr et flexible.