Zum Hauptinhalt Zur Navigation Zur Suche

Bottlerocket: Amazon baut sich eigenen Container-Host

Ein minimales Linux-System, ohne Paketverwaltung, SSH oder Shell, dafür ganz viel Rust – das reicht Amazon als Host-OS für Container.
/ Sebastian Grüner
Kommentare News folgen (öffnet im neuen Fenster)
Amazons Bottlerocket ist ein kleiner Container-Host. (Bild: Amazon)
Amazons Bottlerocket ist ein kleiner Container-Host. Bild: Amazon

Der Cloud-Provider Amazon Web Services hat das Linux-System Bottlerocket angekündigt(öffnet im neuen Fenster), das für den Einsatz als Container-Host gedacht ist. Laut Amazon spiegelt das System die jahrelangen Erfahrungen des Unternehmens im Container-Ökosystem wider. Einige der genutzten Techniken kommen einem dabei durchaus bekannt vor, Amazon setzt zusätzlich aber auch auf eigene Lösungen.

So basiert Bottlerocket natürlich auf einem minimalen Linux-Kernel, nutzt die Glibc sowie auch Grub. Als Init-System wird Systemd verwendet, für Netzwerkverbindungen setzt Amazon auf Wicked, das von Suse erstellt wird. Für die Container-Laufzeitumgebung sorgt Containerd von Docker.

Damit unterscheidet sich das System von Amazon nicht grundlegend von den Angeboten der kommerziellen Linux-Distributoren wie Suses MicroOS oder Red Hats CoreOS, das aus dem Atomic Host und Core OS Container Linux zusammengeführt wurde.

Bottlerocket nutzt außerdem auch die Paketdefinition von RPM, verzichtet in der Distribution selbst aber auf eine Paketverwaltung. Vielmehr werden Abbilder erzeugt, die nur lesend eingehängt werden sollen. Zum Update wird dann auf eine neue Partition mit neuem Abbild gewechselt, was mittels TUF(öffnet im neuen Fenster) (The Update Framework) erfolgt. TUF stammt aus dem Kubernetes-Umfeld.

Viele Sicherheitstechniken

Zusätzlich dazu legt Amazon aber viel Wert auf eigene Techniken, die sich vor allem durch ihre Sicherheit auszeichnen sollen(öffnet im neuen Fenster). So nutzt Bottlerocket das Werkzeug dm-verity, um die Integrität der unveränderbaren Partitionen zu überprüfen.

Für /etc nutzt das System außerdem Tmpfs und die direkte Konfiguration von darin enthaltenen Dateien wird nicht unterstützt. Ebenso verzichtet das System auf SSH, eine Shell und Interpreter, so dass etwa Python nicht verfügbar ist. Kompiliert werden die Binärdateien außerdem mit vielen Hardening-Optionen. Die Konfiguration und der Zugriff von außen geschehen ausschließlich über APIs und Clients sowie einen speziellen Admin-Container im Kubernetes-Cluster.

Die eigenen Anwendungen und API-Dienste von Bottlerocket(öffnet im neuen Fenster) hat das Team von Amazon zudem komplett in Rust geschrieben, wodurch die von C bekannten typischen Speicherfehler verhindert werden sollen. Auch das Build-System der Pakete ist in Rust neu geschrieben worden. Weitere Details liefert die Dokumentation des Projekts auf Github(öffnet im neuen Fenster).


Relevante Themen