Runj - Boîte à outils compatible OCI pour gérer les conteneurs basés sur la prison FreeBSD

Samuel Karp, ingénieur chez Amazon qui développe la distribution Bottlerocket Linux et les technologies d'isolation de conteneurs pour AWS, développe un nouveau runtime runj basé sur les environnements de prison FreeBSD pour permettre le lancement isolé de conteneurs conçus conformément à l'initiative de spécification OCI (Open Container)) . Le projet se positionne comme expérimental, développé en dehors du travail principal et est encore au stade de prototype. Le code est écrit en Go et distribué sous licence BSD.

Après avoir amené le développement au niveau approprié, le projet peut potentiellement atteindre un niveau qui vous permet d'utiliser runj pour remplacer le runtime habituel dans les systèmes Docker et Kubernetes, en utilisant FreeBSD au lieu de Linux pour exécuter des conteneurs. À partir du runtime OCI, des commandes sont actuellement implémentées pour créer, supprimer, démarrer, forcer la fin et évaluer l'état des conteneurs. Le remplissage du conteneur est créé sur la base de l'environnement FreeBSD standard ou allégé.

Étant donné que la spécification OCI ne prend pas encore en charge FreeBSD, le projet a développé un certain nombre de paramètres supplémentaires liés à la configuration de jail et de FreeBSD, qui devraient être soumis pour inclusion dans la spécification principale OCI. Pour gérer jail, les utilitaires jail, jls, jexec, kill et ps de FreeBSD sont utilisés, sans accéder directement aux appels système. Les plans futurs incluent l'ajout de la prise en charge de la gestion des limitations de ressources via l'interface RCTL du noyau.

En plus de son propre runtime, une couche expérimentale est également en cours de développement dans le référentiel du projet pour être utilisée avec le runtime containersd (utilisé dans Docker), modifié pour prendre en charge FreeBSD. Un utilitaire spécial est proposé pour convertir les rootfs FreeBSD en une image de conteneur compatible OCI. L'image créée peut ensuite être importée dans containersd.

Source: opennet.ru

Ajouter un commentaire