Un "runc" open-source de nouvelle génération qui permet aux conteneurs rootless d'exécuter des charges de travail telles que Systemd, Docker, Kubernetes, tout comme des machines virtuelles.
Sysbox est un runtime de conteneurs open-source et gratuit (un « runc » spécialisé), initialement développé par Nestybox ([acquis par Docker][docker-acquisition] en 05/2022), qui améliore les conteneurs de deux manières clés :
Améliore l'isolation des conteneurs :
Espace de noms utilisateur Linux sur tous les conteneurs (c'est-à-dire que l'utilisateur root dans le conteneur n'a aucun privilège sur l'hôte).
Virtualise des parties de procfs et sysfs à l'intérieur du conteneur.
Masque les informations de l'hôte à l'intérieur du conteneur.
Verrouille les montages initiaux du conteneur, et plus encore.
Permet aux conteneurs d'exécuter les mêmes charges de travail que les VM :
Avec Sysbox, les conteneurs peuvent exécuter des logiciels de niveau système tels que systemd, Docker, Kubernetes, K3s, buildx (y compris les builds multi-architectures), des applications héritées, des applications multi-architectures, et plus encore, de manière transparente et sécurisée.
Ces logiciels peuvent s'exécuter dans les conteneurs Sysbox sans modification et sans utiliser de versions spéciales du logiciel (par exemple, des variantes rootless).
Pas de conteneurs privilégiés, pas d'images complexes, pas de points d'entrée compliqués, pas de montages de volumes spéciaux, etc.
Pensez à Sysbox comme à un « superchargeur de conteneurs » : il permet à vos gestionnaires de conteneurs / orchestrateurs existants (par exemple, Docker, Kubernetes, etc.) de déployer des conteneurs dotés d'une isolation renforcée et capables d'exécuter presque toutes les charges de travail qui s'exécutent dans des VM.
Sysbox fait cela en faisant ressembler le conteneur à un environnement de type VM autant que possible, grâce à des techniques avancées de virtualisation OS.
Contrairement aux runtimes alternatifs tels que Kata et KubeVirt, il n'utilise pas de VM. Cela le rend plus facile à utiliser (en particulier dans les environnements cloud en évitant la virtualisation imbriquée), bien qu'il n'offre pas le niveau d'isolation que fournissent les runtimes basés sur des VM. Voir ici pour une comparaison.
Il n'est pas nécessaire d'apprendre de nouveaux outils ou de modifier vos images de conteneurs ou vos flux de travail existants pour profiter de Sysbox. Il suffit de l'installer et de pointer votre gestionnaire de conteneurs / orchestrateurs vers lui pour déployer des conteneurs améliorés.
Sysbox peut coexister avec d'autres runtimes de conteneurs sur le même hôte (par exemple, le runc OCI par défaut, Kata, etc.). Vous pouvez facilement choisir quels conteneurs ou pods exécuter avec chacun, selon vos besoins.
Sysbox est un logiciel libre et open-source, sous licence Apache License, Version 2.0. Voir le fichier LICENSE pour plus de détails.
Sysbox a été initialement développé par Nestybox. Comme [Nestybox fait désormais partie de Docker][docker-acquisition], Docker est le principal sponsor du projet Sysbox.
Cela dit, Sysbox est un projet communautaire open-source et n'est pas officiellement supporté par Docker (c'est-à-dire que les abonnements Docker n'incluent pas le support Sysbox). Le support est fourni au mieux possible via ce dépôt Github ou via le [Sysbox Slack Workspace][slack].
Nous encourageons la participation de la communauté pour faire évoluer et améliorer Sysbox, dans le but d'accroître les cas d'utilisation et les avantages qu'il procure. Les mainteneurs et contributeurs externes sont les bienvenus.
Sysbox résout des problèmes tels que :
Renforcer l'isolation des microservices conteneurisés (root dans le conteneur correspond à un utilisateur non privilégié sur l'hôte).
Permettre un utilisateur root très puissant à l'intérieur du conteneur sans compromettre la sécurité de l'hôte.
Sécuriser les pipelines CI/CD en permettant Docker-in-Docker (DinD) ou Kubernetes-in-Docker (KinD) sans conteneurs privilégiés non sécurisés ni montage du socket Docker de l'hôte.
Permettre l'utilisation de conteneurs comme environnements « type VM » pour le développement, les tests locaux, l'apprentissage, etc., avec une isolation solide et la capacité d'exécuter systemd, Docker, des IDE, et plus encore à l'intérieur du conteneur.
Exécuter des applications héritées dans des conteneurs (au lieu de VM moins efficaces).
Remplacer les VM par une alternative conteneurisée plus facile, plus rapide, plus efficace et plus portable, déployable facilement dans des environnements cloud.
Partitionner des hôtes bare-metal en plusieurs environnements de calcul isolés avec 2 fois la densité des VM (c'est-à-dire déployer deux fois plus de conteneurs de type VM que de VM sur le même matériel avec les mêmes performances).
Partitionner des instances cloud (par exemple, EC2, GCP, etc.) en plusieurs environnements de calcul isolés sans recourir à une virtualisation imbriquée coûteuse.
Sysbox s'installe facilement sur les hôtes Linux (bare-metal, VM, sur site, cloud, etc.). Il fonctionne sur tous les principaux services IaaS et Kubernetes basés sur le cloud (par exemple, EC2, GCP, GKE, EKS, AKS, Rancher, etc.)
Une fois installé, Sysbox opère en arrière-plan : vous utilisez Docker, Kubernetes, etc. pour déployer des conteneurs avec lui.
Par exemple, cette simple commande Docker crée un conteneur avec Sysbox :
$ docker run --runtime=sysbox-runc -it any_image