Sortie de Kata Containers 3.2 avec isolation basée sur la virtualisation

La version du projet Kata Containers 3.2 a été publiée, développant une pile pour organiser l'exécution de conteneurs en utilisant une isolation basée sur des mécanismes de virtualisation à part entière. Le projet a été créé par Intel et Hyper en combinant les technologies Clear Containers et runV. Le code du projet est écrit en Go et Rust et est distribué sous la licence Apache 2.0. Le développement du projet est supervisé par un groupe de travail créé sous les auspices de l'organisation indépendante OpenStack Foundation, qui comprend des sociétés telles que Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE et ZTE. .

Kata est basé sur le runtime, qui vous permet de créer des machines virtuelles compactes qui s'exécutent à l'aide d'un hyperviseur complet, au lieu d'utiliser des conteneurs traditionnels qui utilisent un noyau Linux commun et sont isolés à l'aide d'espaces de noms et de groupes de contrôle. L'utilisation de machines virtuelles vous permet d'atteindre un niveau de sécurité plus élevé qui protège contre les attaques causées par l'exploitation des vulnérabilités du noyau Linux.

Kata Containers se concentre sur l'intégration dans les infrastructures d'isolation de conteneurs existantes avec la possibilité d'utiliser des machines virtuelles similaires pour améliorer la protection des conteneurs traditionnels. Le projet fournit des mécanismes pour garantir la compatibilité des machines virtuelles légères avec diverses infrastructures d'isolation de conteneurs, plates-formes d'orchestration de conteneurs et spécifications telles que OCI (Open Container Initiative), CRI (Container Runtime Interface) et CNI (Container Networking Interface). Des outils sont disponibles pour l'intégration avec Docker, Kubernetes, QEMU et OpenStack.

L'intégration avec les systèmes de gestion de conteneurs est réalisée à l'aide d'une couche qui simule la gestion de conteneurs, qui accède à l'agent de gestion dans la machine virtuelle via l'interface gRPC et un proxy spécial. Dans l'environnement virtuel lancé par l'hyperviseur, un noyau Linux spécialement optimisé est utilisé, contenant uniquement l'ensemble minimum de fonctionnalités nécessaires.

En tant qu'hyperviseur, il prend en charge l'utilisation de Dragonball Sandbox (une édition de KVM optimisée pour les conteneurs) avec la boîte à outils QEMU, ainsi que Firecracker et Cloud Hypervisor. L'environnement système comprend un démon d'initialisation et un agent. L'agent permet l'exécution d'images de conteneurs définies par l'utilisateur au format OCI pour Docker et CRI pour Kubernetes. Lorsqu'elle est utilisée conjointement avec Docker, une machine virtuelle distincte est créée pour chaque conteneur, c'est-à-dire L'environnement exécuté au-dessus de l'hyperviseur est utilisé pour le lancement imbriqué de conteneurs.

Sortie de Kata Containers 3.2 avec isolation basée sur la virtualisation

Pour réduire la consommation de mémoire, le mécanisme DAX est utilisé (accès direct au système de fichiers, contournement du cache des pages sans utiliser le niveau du périphérique bloc), et pour dédupliquer des zones mémoire identiques, la technologie KSM (Kernel Samepage Merging) est utilisée, ce qui vous permet pour organiser le partage des ressources du système hôte et se connecter à différents systèmes invités, partager un modèle d'environnement système commun.

Dans la nouvelle version:

  • En plus de la prise en charge de l'architecture AMD64 (x86_64), des versions sont fournies pour les architectures ARM64 (Aarch64) et s390 (IBM Z). La prise en charge de l'architecture ppc64le (IBM Power) est en cours de développement.
  • Pour organiser l'accès aux images de conteneurs, le système de fichiers Nydus 2.2.0 est utilisé, qui utilise l'adressage de contenu pour une collaboration efficace avec les images standard. Nydus prend en charge le chargement d'images à la volée (téléchargements uniquement en cas de besoin), fournit la déduplication des données en double et peut utiliser différents backends pour le stockage réel. La compatibilité POSIX est assurée (similaire à Composefs, l'implémentation Nydus combine les capacités d'OverlayFS avec le module EROFS ou FUSE).
  • Le gestionnaire de machines virtuelles Dragonball a été intégré à la structure principale du projet Kata Containers, qui sera désormais développé dans un référentiel commun.
  • Une fonction de débogage a été ajoutée à l'utilitaire kata-ctl pour se connecter à une machine virtuelle depuis l'environnement hôte.
  • Les capacités de gestion des GPU ont été étendues et la prise en charge du transfert des GPU vers des conteneurs pour l'informatique confidentielle (Confidential Container) a été ajoutée, qui assure le cryptage des données, de la mémoire et de l'état d'exécution pour la protection en cas de compromission de l'environnement hôte ou de l'hyperviseur.
  • Un sous-système de gestion des appareils utilisés dans des conteneurs ou des environnements sandbox a été ajouté à Runtime-rs. Prend en charge le travail avec vfio, block, réseau et autres types d'appareils.
  • La compatibilité avec OCI Runtime 1.0.2 et Kubernetes 1.23.1 est fournie.
  • Il est recommandé d'utiliser la version 6.1.38 avec les correctifs comme noyau Linux.
  • Le développement a été transféré de l'utilisation du système d'intégration continue Jenkins vers GitHub Actions.

Source: opennet.ru

Ajouter un commentaire