
Un "runc" open-source di nuova generazione che consente ai container rootless di eseguire carichi di lavoro come Systemd, Docker, Kubernetes, proprio come le VM.
Sysbox è un container runtime open-source e gratuito (una "runc" specializzata), originariamente sviluppato da Nestybox ([acquisita da Docker][docker-acquisition] a 05/2022), che potenzia i container in due modi fondamentali:
Migliora l'isolamento dei container:
User-namespace Linux su tutti i container (cioè, l'utente root nel container ha zero privilegi sull'host).
Virtualizza porzioni di procfs e sysfs all'interno del container.
Nasconde le informazioni dell'host all'interno del container.
Blocca i mount iniziali del container e altro ancora.
Consente ai container di eseguire gli stessi carichi di lavoro delle VM:
Con Sysbox, i container possono eseguire software a livello di sistema come systemd, Docker, Kubernetes, K3s, buildx (incluse build multi-arch), applicazioni legacy, applicazioni multi-arch e altro ancora, in modo fluido e sicuro.
Questo software può essere eseguito all'interno dei container Sysbox senza modifiche e senza utilizzare versioni speciali del software (ad es., varianti rootless).
Niente container privilegiati, niente immagini complesse, niente entrypoint complicati, niente mount di volumi speciali, ecc.
Consideralo come un "supercharger per container": consente ai tuoi attuali gestori di container / orchestratori (es., Docker, Kubernetes, ecc.) di distribuire container con un isolamento irrobustito e in grado di eseguire quasi tutti i carichi di lavoro che girano nelle VM.
Sysbox fa questo facendo assomigliare il container a un ambiente simile a una VM il più possibile, usando tecniche avanzate di virtualizzazione del sistema operativo.
A differenza dei runtime alternativi come Kata e KubeVirt, non usa VM. Questo lo rende più facile da usare (particolarmente in ambienti cloud evitando la virtualizzazione annidata), sebbene non offra il livello di isolamento dei runtime basati su VM. Vedi qui per un confronto.
Non è necessario imparare nuovi strumenti o modificare le immagini dei container o i flussi di lavoro esistenti per sfruttare Sysbox. Basta installarlo e indirizzare il proprio gestore di container / orchestratore verso di esso per distribuire container potenziati.
Sysbox può coesistere con altri runtime di container sullo stesso host (es., il runc OCI predefinito, Kata, ecc.). Puoi scegliere facilmente quali container o pod eseguire con ciascuno, a seconda delle tue esigenze.
Sysbox è gratuito e open-source, concesso in licenza secondo la Apache License, Versione 2.0. Vedi il file LICENSE per i dettagli.
Sysbox è stato originariamente sviluppato da Nestybox. Dato che [Nestybox ora fa parte di Docker][docker-acquisition], Docker è il principale sponsor del progetto Sysbox.
Detto questo, Sysbox è un progetto open-source della community e non è ufficialmente supportato da Docker (cioè, gli abbonamenti Docker non includono il supporto per Sysbox). Il supporto è fornito secondo il miglior sforzo possibile tramite questo repository Github o tramite la [Sysbox Slack Workspace][slack].
Incoraggiamo la partecipazione della community per aiutare a far evolvere e migliorare Sysbox, con l'obiettivo di aumentare i casi d'uso e i benefici che abilita. Maintainer e contributori esterni sono i benvenuti.
Sysbox risolve problemi come:
Migliorare l'isolamento dei microservizi containerizzati (root nel container corrisponde a un utente senza privilegi sull'host).
Abilitare un utente root altamente capace all'interno del container senza compromettere la sicurezza dell'host.
Mettere in sicurezza le pipeline CI/CD abilitando Docker-in-Docker (DinD) o Kubernetes-in-Docker (KinD) senza container privilegiati insicuri o mount del socket Docker dell'host.
Consentire l'uso dei container come ambienti "simili a VM" per sviluppo, test locali, apprendimento, ecc., con un forte isolamento e la capacità di eseguire systemd, Docker, IDE e altro all'interno del container.
Eseguire applicazioni legacy all'interno dei container (invece di VM meno efficienti).
Sostituire le VM con un'alternativa basata su container più facile, veloce, efficiente e portabile, distribuibile facilmente in ambienti cloud.
Partizionare host bare-metal in più ambienti di calcolo isolati con una densità 2X rispetto alle VM (cioè, distribuire il doppio di container simili a VM rispetto alle VM sullo stesso hardware e con le stesse prestazioni).
Partizionare istanze cloud (es., EC2, GCP, ecc.) in più ambienti di calcolo isolati senza ricorrere alla costosa virtualizzazione annidata.
Sysbox si installa facilmente su host Linux (bare-metal, VM, on-prem, cloud, ecc.). Funziona su tutti i principali servizi IaaS e Kubernetes basati su cloud (es., EC2, GCP, GKE, EKS, AKS, Rancher, ecc.)
Una volta installato, Sysbox lavora dietro le quinte: usi Docker, Kubernetes, ecc. per distribuire container con esso.
Ad esempio, questo semplice comando Docker crea un container con Sysbox:
$ docker run --runtime=sysbox-runc -it any_image
Ottieni un container ben isolato in grado di eseguire senza problemi microservizi e software a livello di sistema che normalmente gira sulle VM (es., systemd, Docker, Kubernetes, ecc.).
Maggiori informazioni su come usare Sysbox qui.