
Ein quelloffenes "runc" der nächsten Generation, das rootless Containern ermöglicht, Workloads wie Systemd, Docker, Kubernetes auszuführen – genau wie VMs.
Sysbox ist eine Open-Source- und kostenlose Container-Runtime (ein spezialisierter "runc"), ursprünglich entwickelt von Nestybox ([übernommen von Docker][docker-acquisition] im 05/2022), die Container auf zwei wesentliche Arten verbessert:
Verbessert die Container-Isolation:
Linux-User-Namespace für alle Container (d. h. der Root-Benutzer im Container hat keinerlei Privilegien auf dem Host).
Virtualisiert Teile von procfs & sysfs innerhalb des Containers.
Verbirgt Host-Informationen innerhalb des Containers.
Sperrt die anfänglichen Mounts des Containers und mehr.
Ermöglicht es Containern, dieselben Workloads wie VMs auszuführen:
Mit Sysbox können Container Systemsoftware wie systemd, Docker, Kubernetes, K3s, buildx (einschließlich Multi-Arch-Builds), Legacy- Apps, Multi-Arch-Apps und mehr nahtlos & sicher ausführen.
Diese Software kann ohne Modifikation und ohne spezielle Versionen der Software (z. B. Rootless-Varianten) in Sysbox-Containern ausgeführt werden.
Keine privilegierten Container, keine komplexen Images, keine kniffligen Entrypoints, keine speziellen Volume-Mounts usw.
Stellen Sie es sich wie einen "Container-Supercharger" vor: Er ermöglicht es Ihren vorhandenen Container-Managern / Orchestrierern (z. B. Docker, Kubernetes usw.), Container bereitzustellen, die eine gehärtete Isolation haben und fast jede Workload ausführen können, die in VMs läuft.
Sysbox erreicht dies, indem es den Container so weit wie möglich einer VM-ähnlichen Umgebung angleicht, unter Verwendung fortschrittlicher OS-Virtualisierungstechniken.
Im Gegensatz zu alternativen Runtimes wie Kata und KubeVirt verwendet es keine VMs. Das macht es einfacher zu verwenden (insbesondere in Cloud-Umgebungen, da verschachtelte Virtualisierung vermieden wird), obwohl es nicht das Maß an Isolation bietet, das VM-basierte Runtimes bieten. Siehe hier für einen Vergleich.
Es ist nicht nötig, neue Tools zu erlernen oder Ihre vorhandenen Container-Images oder Workflows zu ändern, um Sysbox zu nutzen. Installieren Sie es einfach und weisen Sie Ihren Container-Manager / Ihre Orchestrierung darauf hin, um erweiterte Container bereitzustellen.
Sysbox kann problemlos neben anderen Container-Runtimes auf demselben Host existieren (z. B. dem standardmäßigen OCI runc, Kata usw.). Sie können je nach Bedarf einfach auswählen, welche Container oder Pods Sie mit welcher Runtime ausführen.
Sysbox ist frei und Open-Source, lizenziert unter der Apache License, Version 2.0. Siehe die Datei LICENSE für Details.
Sysbox wurde ursprünglich von Nestybox entwickelt. Da [Nestybox nun Teil von Docker ist][docker-acquisition], ist Docker der Hauptsponsor des Sysbox-Projekts.
Dennoch ist Sysbox ein Community-Open-Source-Projekt und wird nicht offiziell von Docker unterstützt (d. h. Docker-Abonnements beinhalten keinen Sysbox-Support). Support wird auf Best-Effort-Basis über dieses Github-Repo oder über den [Sysbox-Slack-Workspace][slack] bereitgestellt.
Wir ermutigen die Community zur Teilnahme, um Sysbox weiterzuentwickeln und zu verbessern, mit dem Ziel, die Anwendungsfälle und Vorteile zu erweitern. Externe Maintainer und Mitwirkende sind willkommen.
Sysbox löst Probleme wie:
Verbesserung der Isolation von containerisierten Microservices (Root im Container wird auf einen unprivilegierten Benutzer auf dem Host abgebildet).
Ermöglichung eines sehr leistungsfähigen Root-Benutzers innerhalb des Containers, ohne die Host-Sicherheit zu gefährden.
Absicherung von CI/CD-Pipelines durch Ermöglichung von Docker-in-Docker (DinD) oder Kubernetes-in-Docker (KinD) ohne unsichere privilegierte Container oder Host-Docker-Socket-Mounts.
Ermöglichung der Nutzung von Containern als "VM-ähnliche" Umgebungen für Entwicklung, lokales Testen, Lernen usw., mit starker Isolation und der Fähigkeit, systemd, Docker, IDEs und mehr innerhalb des Containers auszuführen.
Ausführung von Legacy-Apps in Containern (anstatt in weniger effizienten VMs).
Ersetzung von VMs durch eine einfachere, schnellere, effizientere und portablere containerbasierte Alternative, die problemlos über Cloud-Umgebungen hinweg bereitgestellt werden kann.
Partitionierung von Bare-Metal-Hosts in mehrere isolierte Rechenumgebungen mit der 2-fachen Dichte von VMs (d. h. doppelt so viele VM-ähnliche Container wie VMs auf derselben Hardware bei gleicher Leistung bereitstellen).
Partitionierung von Cloud-Instanzen (z. B. EC2, GCP usw.) in mehrere isolierte Rechenumgebungen, ohne auf teure verschachtelte Virtualisierung zurückzugreifen.
Sysbox lässt sich einfach installieren auf Linux-Hosts (Bare-Metal, VM, On-Premises, Cloud usw.). Es funktioniert mit allen gängigen Cloud-basierten IaaS- und Kubernetes-Diensten (z. B. EC2, GCP, GKE, EKS, AKS, Rancher usw.)
Nach der Installation arbeitet Sysbox im Hintergrund: Sie verwenden Docker, Kubernetes usw., um Container damit bereitzustellen.
Zum Beispiel erstellt dieser einfache Docker-Befehl einen Container mit Sysbox:
$ docker run --runtime=sysbox-runc -it any_image
Sie erhalten einen gut isolierten Container, der nahtlos Microservices sowie Systemsoftware ausführen kann, die normalerweise auf VMs läuft (z. B. systemd, Docker, Kubernetes usw.).
Mehr zur Verwendung von Sysbox hier.