banner
Heim / Nachricht / Hände
Nachricht

Hände

Nov 13, 2023Nov 13, 2023

Von Simon Bisson, Kolumnist, InfoWorld |

Die Linux-Distribution CBL-Mariner von Microsoft wird für Azure immer wichtiger, sowohl in der Cloud als auch vor Ort. Es hostet nicht nur die GUI-Funktionen von WSL 2 in Windows 11, sondern ist auch der Container-Host im Azure Kubernetes Service und ist als Basis-Container-Image in der Microsoft Container Registry verfügbar. Außerdem unterstützt es Container ohne Distribution in Azure. Deshalb lohnt es sich, Zeit mit CBL-Mariner zu verbringen, seine Funktionen und Fähigkeiten kennenzulernen und zu sehen, wie es sich auf Ihren Code auswirken kann.

Mit der Veröffentlichung von Version 2.0 ist die Arbeit mit CBL-Mariner jetzt viel einfacher. Frühe Versionen mussten von Grund auf neu erstellt werden, was eine Go-basierte Toolchain erforderte, die unter Linux ausgeführt wurde. Jetzt können Sie einfach eine ISO herunterladen und in den virtuellen Server-Tools Ihrer Wahl installieren. Da ich Windows verwendet habe, habe ich Hyper-V zum Hosten meiner Installation verwendet. Wenn Sie Azure als Host bevorzugen, können Sie Ihre eigene virtuelle Maschine einrichten oder eine vorkonfigurierte Installation aus der VM-Bibliothek von Azure verwenden. Ein alternativer Ansatz besteht darin, Docker zu verwenden, um ein Basis-Image direkt aus Microsofts eigener Container Registry herunterzuladen und auszuführen.

CBL-Mariner ist im Wesentlichen ein modernes Linux, das für die Zusammenarbeit mit UEFI-Systemen (Unified Extensible Firmware Interface) entwickelt wurde, sodass Sie eine virtuelle Gen2 Hyper-V-Festplatte verwenden können, um das Beste aus Ihrer Installation herauszuholen. Es gibt eine mögliche Gefahr: Sie müssen sicherstellen, dass Ihre Hyper-V-UEFI-Umgebung das richtige Zertifikat verwendet; Andernfalls kann die ISO nicht gestartet werden. Stellen Sie im Abschnitt „Sicherheit“ der Hyper-V-Einstellungen für Ihre virtuelle Maschine sicher, dass Sie für den sicheren Start die Microsoft UEFI-Zertifizierungsstelle und nicht das Standard-Windows-Zertifikat verwenden.

Beim ersten Start wird Ihnen die Wahl zwischen einem textbasierten oder grafischen Installationsprogramm angeboten. Mit der grafischen Option können Sie zwischen einer Vollinstallation und einer Kerninstallation wählen. Ich habe mich für die vollständige Installation entschieden, um zu sehen, wie viel Speicherplatz sie verbraucht und welche Dienste sie installiert.

Sobald Sie Ihre Installation ausgewählt haben, wählen Sie die Festplatte aus, die verwendet werden soll, und ob sie verschlüsselt werden soll oder nicht. Die Verschlüsselung ist in einer Umgebung mit mehreren Mandanten nützlich oder wenn Sie nicht wissen, wer Zugriff auf Ihre Systemfestplatten hat. Das Installationsprogramm formatiert dann das von Ihnen gewählte Laufwerk und installiert CBL-Mariner.

Der grafische Installer bietet die Wahl zwischen einer Voll- oder Kerninstallation.

Auf meinem Testsystem dauerte eine vollständige Installation 85 Sekunden und verbrauchte 2,2 GB Speicherplatz. Eine CBL-Mariner-Kerninstallation mit dem Textinstallationsprogramm nahm sogar noch weniger Zeit in Anspruch, nur 21 Sekunden, und benötigte nur 297 MB Speicherplatz.

Eine vollständige Installation von CBL-Mariner dauerte weniger als zwei Minuten.

Nach der Installation gelangen Sie durch einen weiteren Start zu einer Anmeldeaufforderung. Wie bei Windows Server Core gibt es keinen Desktop. Das sollte nicht überraschen. CBL-Mariner soll ein Headless-System sein, das auf Cloud-Servern läuft und Cloud-native Anwendungen mit Web-Benutzeroberflächen hostet. Ein Desktop im Benutzermodus birgt nur zusätzliche Sicherheitsrisiken und macht das System komplexer. Der große Vorteil, den Sie mit einer leichten, nur auf Konsolen basierenden Distribution wie der von Microsoft haben, ist die Einfachheit. Wenn Sie Lust zum Experimentieren haben, gibt es im CBL-Mariner-Paket-Repository eine X11-Version, höchstwahrscheinlich im Rahmen seiner Rolle bei der Bereitstellung von Grafikunterstützung für WSL 2.

Eine solche kleine Installation ist wichtig, wenn Sie mit Containern arbeiten. Dies bedeutet, dass Ihr Basis-Image schnell geladen wird und eine schnelle Bereitstellung von Containern gewährleistet wird, wenn Anwendungen in Kubernetes oder in einfachen Orchestrierungsumgebungen wie Azure Container Instances mithilfe des Standardpakets Moby-container skaliert werden. Hier kommt die Kernversion ins Spiel; Es ist klein genug, dass es extrem schnell über das interne Netzwerk von Azure oder von einer lokalen Containerregistrierung auf ein Azure Stack HCI-System heruntergeladen werden sollte. Kleine Bilder ermöglichen eine noch höhere Dichte auf Systemen wie diesem, eine nützliche Funktion, wenn Sie ressourcenbeschränkte Hardware am Rande betreiben.

Microsoft empfiehlt vorgefertigte Images wie die von mir heruntergeladene ISO oder eigene Container-Images. Obwohl Sie die Quelle verwenden und sie selbst anpassen und erstellen können, muss sie nicht den Validierungsprozess durchlaufen haben, der zum Erstellen von Microsofts eigenen Versionen verwendet wird.

Der Einfachheit halber sieht CBL-Mariner wie jedes andere Textmodus-Linux aus. Es werden nicht sehr viele Dienste ausgeführt, hauptsächlich grundlegende Dateisysteme, Netzwerke und die Protokollverarbeitung. Das ist es, was man von einer Plattform wie dieser erwarten würde: ein Minimum an Diensten, um sicherzustellen, dass nur eine sehr geringe Angriffsfläche vorhanden ist. Es lohnt sich, Zeit mit der grundlegenden Dokumentation zu verbringen, um zu verstehen, wie Sie Ihre Installation verwalten.

Ein wichtiger philosophischer Punkt bei CBL-Mariner: Dies ist keine Linux-Distribution, die einmal installiert und dann kontinuierlich aktualisiert wird. Sie können Sicherheitsupdates von Microsoft erhalten, aber es ist viel besser, es als Teil der Infrastruktur zu behandeln, die sich nur ändert, wenn Sie eine ganz neue Version installieren. Alles, was im Userland leben muss, sollte als Container installiert werden. Das Basisbetriebssystem wird monatlich aktualisiert, wodurch ein Zeitplan für das Hinzufügen neuer Versionen zu einem kontinuierlichen Integrations- und kontinuierlichen Bereitstellungsprozess (CI/CD) entsteht.

Das heißt nicht, dass Sie es nicht für Ihre eigenen Projekte anpassen können. Microsoft stellt Dokumentation und Tools zum Hinzufügen von Paketen oder zum Erstellen eigener Forks bereit. Wenn Sie Ihre eigene Version erstellen, sollten Sie auf einem Fork des Microsoft-Codes aufbauen und Git Rebase verwenden, um Ihren Code und den von Microsoft mit Sicherheitsupdates und -versionen zu synchronisieren, damit Sie nicht mit einer unsicheren Version von CBL-Mariner zurückbleiben .

Jetzt können Sie Pakete zu Ihrer Basisinstallation hinzufügen. Microsoft unterstützt das RPM-Paketformat von RedHat, wobei der TDNF-Paketmanager als Teil der Basisversion installiert ist. Wenn Sie TDNF noch nie verwendet haben, stellen Sie es sich als eine aktualisierte Version des bekannten Yum-Tools vor. TDNF in CBL-Mariner ist für die Verwendung von Microsofts eigenen Repositorys konfiguriert, die sicherheitsgepatchte Versionen von Paketen enthalten, die mit CBL-Mariner getestet wurden. Microsoft verfügt über eine Service-Level-Vereinbarung zum Patchen von Paketen, die auf dem Schweregrad etwaiger Sicherheitslücken basiert.

Ein Verzeichnis der kuratierten Pakete finden Sie online. Im Vergleich zu RedHat oder Ubuntu ist dies eine relativ kurze Liste, aber sie entspricht den Erwartungen, die Sie von einem Container-Image erwarten würden, das auf Azure ausgeführt wird. Zu den Microsoft-spezifischen Paketen gehören .NET und ASP.NET Core (zusammen mit dem Kestrel-Webserver) sowie die OpenJDK-Version von Microsoft und das SQL Server-Tool, einschließlich ODBC-Konnektoren. Neben Microsofts eigenen Tools enthält das CBL-Mariner-Repository eine lange Liste gängiger Linux-Tools und Programmierumgebungen, darunter Python 3, Kubernetes und node.js. Pakete sind in Basis- und erweiterte Sammlungen unterteilt, sodass Sie die meisten Anwendungen hosten können. Das resultierende Benutzerland bietet eine Möglichkeit, Container für die Verwendung in Azure zu erstellen und zu verwalten.

Da Microsoft jetzt ARM-basierte Server als Teil von Azure einführt, ist es schön, ARM-Builds vieler CBL-Mariner-Pakete zu sehen. Wenn Sie Container erstellen, die auf diesen neuen Servern ausgeführt werden sollen, ist es wichtig, nach unterstützten ARM-Versionen der Pakete zu suchen, die Sie verwenden möchten.

Da Container die Grundlage der cloudnativen Entwicklung bilden, ist klar, dass Microsoft ein eigenes Host-Betriebssystem für Azure benötigte, und sei es nur, um die Probleme zu vermeiden, die mit dem Verlust von CoreOS einhergingen. Während der Kauf von Kinvolk Flatcar ins eigene Unternehmen brachte, besteht immer noch Bedarf an einem eng fokussierten Betriebssystem wie CBL-Mariner, das auf die Bedürfnisse von Azure ausgerichtet ist, und nicht auf irgendeine Kubernetes-Plattform. In Kombination mit Kestrel und YARP und der Ausführung auf ARM könnte CBL-Mariner auch ermöglichen, dass mehr Anwendungen auf weniger Servern laufen und weniger Energie verbrauchen. Das ist ein sehr guter Grund, sich mit Microsofts eigenem Linux vertraut zu machen.

Lesen Sie als nächstes Folgendes:

Simon Bisson, Autor des Enterprise Microsoft-Blogs von InfoWorld, hat in der akademischen und Telekommunikationsforschung gearbeitet, war CTO eines Startups, leitete die technische Seite von UK Online und war in der Beratung und Technologiestrategie tätig.

Urheberrecht © 2022 IDG Communications, Inc.

Lesen Sie als nächstes Folgendes: