LXC-Container mit Proxmox VE

Aus LinuxUser 09/2022

LXC-Container mit Proxmox VE

© Maksym Yemelyanov / 123RF.com

Schnell verpackt

Proxmox VE erleichtert das Erstellen und Verwalten von Containern, was diese Technik auch weniger versierten Anwendern zugänglich macht.

Bei Proxmox handelt es sich um eine freie, auf Debian basierende Distribution der Proxmox Server Solutions GmbH aus Wien. Das System bietet die notwendige Logik, um sowohl virtuelle Maschinen als auch Linux-Container über eine Weboberfläche oder die Kommandozeile zu erstellen und zu verwalten (Abbildung 1). Der Artikel “Volle Hütte” aus LU 10/2021 [1] führt durch die Installation von Proxmox VE (Virtual Environment) [2] und begleitet Sie bei der Nutzung als Heim-Server auf den ersten Schritten. Sie finden ihn auch als PDF im Download-Bereich zu diesem Artikel.

Abbildung 1: Die grafische Oberfläche von Proxmox im Webbrowser bietet eine gute Übersicht über den Ressourcenverbrauch und erlaubt über die Seitenleiste vielfältige Einstellungen.

Abbildung 1: Die grafische Oberfläche von Proxmox im Webbrowser bietet eine gute Übersicht über den Ressourcenverbrauch und erlaubt über die Seitenleiste vielfältige Einstellungen.

Debian als Basis

Sie erhalten mit Proxmox VE einen Hypervisor der Enterprise-Klasse zur freien Verwendung, jedoch ohne Support durch den Hersteller. Als einziger technischer Unterschied zur Bezahlversion fehlt das Enterprise-Repository. Es enthält Pakete aus Debian Stable, während das frei verfügbare Repository Pakete aus dem Testing-Zweig enthält. In der Praxis stellte das bislang aber nie ein Problem dar. Die Proxmox GmbH freut sich, wenn Sie trotzdem eine der erschwinglichen Community-Lizenzen erwerben und damit die Entwicklung unterstützen [3].

Was die benötigte Hardware betrifft, so resultiert der Bedarf aus dem geplanten Einsatzzweck. Zum Test dient bei uns ein im täglichen Einsatz befindlicher, selbst zusammengestellter Mini-PC mit einer Ryzen-5-CPU von AMD, 32 GByte RAM und einer 4-TByte-SSD. Genauso gut eignet sich auch ein ausgedienter PC, er sollte aber über mindestens 8 GByte Arbeitsspeicher und ausreichend Festplattenplatz für Ihre Zwecke mitbringen. RAM spielt bei Proxmox eine Hauptrolle, Sie sollten also so viel wie möglich davon in Ihren Proxmox-Server stecken.

Linux-Container

Proxmox bietet mit virtuellen Maschinen (VM) und Containern (CT) zwei Virtualisierungsmethoden an, die sich für verschiedene Einsatzgebiete eignen. Dieser Artikel konzentriert sich auf die Container. Sie begnügen sich mit weniger Ressourcen, denn im Gegensatz zu virtuellen Maschinen arbeiten Linux-Container nativ auf dem Host-Betriebssystem. Sie nutzen also den Kernel und die Infrastruktur des Wirtsrechners. Deshalb entfällt auch die bei VMs nötige Emulation der Hardware. Das Isolieren von VMs funktioniert etwas besser als bei LXC-Containern, wobei es noch einmal zwischen privilegierten und unprivilegierten Containern zu unterscheiden gilt. Bei Letzteren besitzen Prozesse des Gasts weniger Rechte, was ihre Möglichkeiten beim Zugriff auf die Kernel-Module beschneidet.

Proxmox setzt dabei auf Linux-Container (LXC [4]), eine Technik, die der Kernel seit 2008 mitbringt. LXC-Container nutzen Funktionen des Linux-Kernels wie SELinux, Namespaces und Cgroups, um isolierte Prozesse zu erstellen und Ressourcen zu verwalten. Auch Docker, die bekannte Software zur Container-Virtualisierung, setzte anfangs auf die LXC-Schnittstelle im Kernel.

Docker-Container kapseln das zugrunde liegende Betriebssystem ab und verpacken meist einzelne Anwendungen, die im Zusammenspiel dann Dienste anbieten. Dagegen arbeitet LXC-Container viel direkter auf dem Betriebssystem des Computers, was die Arbeit etwa mit SSH erleichtert. Bei Proxmox heißen sie auch häufig System-Container. LXC-Container lassen sich wie VMs über die Proxmox-Weboberfläche erstellen und verwalten. Wer lieber auf der Kommandozeile arbeitet, findet mit dem Proxmox Container Toolkit (PCT [5]) ein noch mächtigeres und gut dokumentiertes Werkzeug für komplexere Aufgaben.

Ubuntu im Container

Wir erstellen in diesem Artikel einen LXC-Container mit der Server-Edition von Ubuntu, Sie können aber stattdessen auch problemlos eine andere Distribution Ihrer Wahl nutzen. Streben Sie die Virtualisierung eines Betriebssystems inklusive Desktop-Umgebung an, fällt das allerdings mit einer VM leichter. Für Ubuntu gibt es auch eine Vorlage mit LXQt als Desktop, wobei hier X2Go zum Darstellen der grafischen Oberfläche zum Einsatz kommt [6]. Einen weiteren Container erstellen wir mit Turnkey für die Anwendung Gallery, eine Webapplikation zum Organisieren und Veröffentlichen digitaler Fotos.

Die LXC-Container basieren auf Templates, also Vorlagen, die Proxmox mitteilen, was Sie erstellen möchten. Der erste Schritt zum Aufbau eines Containers sollte somit ein Update der mitgelieferten Templates darstellen. Dazu wählen Sie in der Weboberfläche oben in der Seitenleiste server an und führen in der Shell den Befehl pveam update aus. Danach gelangen Sie durch Auswahl von local (server) und anschließend von Container Templates und schließlich Templates zur Auswahl der aktualisierten Vorlagen. (Abbildung 2)

Abbildung 2: LXC-Container erstellt Proxmox aus Templates. Von diesen Vorlagen bringt die Software reiche Auswahl mit.

Abbildung 2: LXC-Container erstellt Proxmox aus Templates. Von diesen Vorlagen bringt die Software reiche Auswahl mit.

Die Liste unterteilt sich in system und turnkeylinux. Unter system finden Sie häufig verwendete Distributionen, teilweise in verschiedenen Versionen. Zur Auswahl stehen neben Debian, Ubuntu, Arch Linux und Fedora auch speziellere Distributionen wie Alpine und Gentoo Linux. Bei Turnkey Linux handelt es sich um ein Open-Source-Projekt, das Anwendungen als virtuelle Geräte bereitstellt. Hier finden Sie Container-Vorlagen für Dienste wie Ansible, WordPress, Nextcloud, OpenVPN, Syncthing, Redis, Typo3 und viele andere [7].

Templates

Um den Ubuntu-Container zu erstellen, suchen Sie in den Templates nach “Ubuntu”. Aus den Ergebnissen wählen Sie eine der Versionen 18.04, 20.04, 21.10 und 22.04. In der Regel dürfte die aktuelle Version sich am besten eignen. Markieren Sie diese und klicken Sie unten auf Herunterladen.

Nach dem Download des rund 200 MByte großen Images erscheint die Vorlage in der Übersicht Container Templates. Markieren Sie nun den Eintrag und wählen Sie in der Kopfleiste Erstelle CT. Danach legen Sie die Eigenschaften des zu erstellenden Containers fest. Zunächst vergeben Sie einen kurzen und prägnanten Host-Namen und ein Kennwort für den Container (Abbildung 3).

Abbildung 3: Nach dem Herunterladen eines Templates finden Sie es im Reiter <span class="ui-element">Container-Templates</span>, von wo aus Sie mit der Ausgestaltung des Containers beginnen.

Abbildung 3: Nach dem Herunterladen eines Templates finden Sie es im Reiter Container-Templates, von wo aus Sie mit der Ausgestaltung des Containers beginnen.

Der Haken bei Unprivilegierter Container hindert den LXC-Gast daran, auf das Host-System zuzugreifen. Möchten Sie im Container mit auf Kernel-Modulen angewiesenen Diensten wie NFS, SMB oder FUSE arbeiten, dann entfernen Sie den Haken. Im Zweifel belassen Sie ihn besser; gegebenenfalls gibt es eine Möglichkeit, diese Einstellung auch später noch zu ändern (siehe Kasten “Privilegierung ändern”).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 09/2022 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben