Virtualisierung mit Proxmox

Je nach Einsatzgebiet eignet sich entweder Container-Virtualisierung oder der Einsatz von virtuellen Maschinen.
Im Bereich Container lässt sich neben Docker bspw. Proxmox auf Linux Container Basis nutzen, mit dem sich komplette Applikationen bereitstellen lassen.
In diesem Beitrag erfahren Sie, welche Vor- und Nachteile die Container-Virtualisierung unter Proxmox mit LXC Containern bietet.

Container vs. VMs

Container sind eine leichtgewichtige Ausprägung der Virtualisierung, die binnen Cloud-Anbietern und gleichfalls binnen der Realisierung moderner modularer Software wie Microservices außerordentlich geachtet ist. Der Erfolg beispielsweise von Docker und darauf aufsetzender Frameworks wie Kubernetes sind der makellose Beweis hierzu. Im Gegensatz zu virtuellen Maschinen werden Container nativ auf dem Host-Betriebssystem eingesetzt. Dieses sorgt dafür, dass für jeden Container eine einzelne Umgebung zur Auswahl steht, es sperrt also die Prozesse ein. Da innerhalb alledem beinahe kein Overhead vonseiten isolierte Gast-Kernel oder Hardware-Emulation entsteht, sind mühelos hunderte Container auf einem Host glaubwürdig. Die Isolation der Gastsysteme ist trotzdem nicht in dieser Art in Gänze wie innerhalb virtuellen Maschinen, denn sämtliche Gastsysteme nutzen den Betriebssystem-Kern des Hosts. Das nennt sich, Container-Virtualisierung ist zu jedem beliebigen Zeitpunkt ein größeres Sicherheitsrisiko als Hardware-Virtualisierung mit VMs.

Unterscheidung Docker und Container

Obwohl Docker nahezu zum Synonym für Container geworden ist, existieren ebenso alternative Techniken, die sich für spezifische Zwecke außerdem besser eignen. Docker ist tendenziell auf außergewöhnlich leichtgewichtige Container ausgelegt, die jeweils lediglich einen einzigen Service zur Auswahl stellen. Für komplexe Applikationen benötigt man also sonderlich viele Container und infolgedessen wiederum Orchestrierungs-Plattformen wie Kubernetes, um die Anzahl und Vielfalt der Container zu bändigen.

Proxmox auf Linux Container Grundlage (LXC)

Bei der Container-Virtualisierung geht Proxmox VE einen weiteren Weg und stellt das Schwergewicht unter den Leichtgewichten dar. Seine Container basieren auf LXC (Linux Container), einer Container-Technologie, die mittels se in jeglicher Linux-Distribution vorhanden ist. Proxmox LXC Container sind genauer „schwergewichtig“, also dafür ausgelegt, nicht wenige Dienste oder gesamte Apps bereitzustellen. Die Proxmox-Entwickler bezeichnen sie als „System Container“, im Gegensatz zu „Micro Containern“ wie innerhalb Docker. Bei Proxmox lassen sich Container außergewöhnlich gleichartig zu virtuellen Maschinen (VMs) verwalten. Netzwerk- und in erster Regel Storage-Anbindung ist flexibler und anhand der Proxmox-Tools erheblich problemloser zu ausrichten als im Zuge LXC-Containern in „normalen“ Distributionen. Selbstverständlich ist es gleichwohl denkbar, in Proxmox eine virtuelle Maschine (VM) einzurichten und dort Docker einschließlich Kubernetes oder einer zusätzliche Container-Management-Plattform zu einrichten. Daraufhin lassen sich die Trümpfe von Proxmox wie skalierbares Storage und Hochverfügbarkeit gleichermaßen für alternative Container-Plattformen nutzen.

Für die Verwaltung der nativen Proxmox-Container ist das Proxmox Container Toolkit (pct) zuständig. Wie fortwährend im Zuge Proxmox VE sind dessen grundlegende Funktionalitäten gleichfalls über das Internet Interface erreichbar. Für komplexere Management-Aufgaben kann der Administrator auf in Ordnung dokumentierte Kommandozeilenwerkzeuge zurückgreifen.

Mehr Schutz mit Hilfe weniger Privilegien

Proxmox offeriert eine Serie von Gelegenheiten, der Schutz der Gastsysteme zu steigern. So können LXC-Container wahlweise im privilegierten oder unprivilegierten Modus angelegt werden. Bei letzterem sorgt das Betriebssystem hierzu, dass sämtliche Prozesse des Gastes mit weniger Rechten als denen des Host-Systems ausgeführt werden. Zu diesem Vorsatz werden Anwender Namespaces genutzt. Das ist ein Gimmick des Linux-Kernels, das privilegierte Nutzer IDs binnen des Containers auf unprivilegierte Anwender IDs abseits abbildet. Hierdurch lassen sich „Ausbruchsversuche“ bösartiger Software verhindern. Außerdem sorgt das standardmäßig aktivierte Kernel-Sicherheitsmodul AppArmor mit sinnvollen Voreinstellungen hierzu, dass ebenfalls in privilegierten Containern die Ausführungsrechte limitiert werden, ohne den Funktionsumfang allzu zu kräftig einzuschränken.

Container erlauben unaufhörlich bloß Gastsysteme vom gleichen Typ wie das Hostsystem, binnen Proxmox VE also Linux. Abgesehen davon sind sie nicht auf die jeweilige Linux-Distribution des Host-Systems limitiert. Außer Debian-Varianten und Ubuntu können also genauso Red-Hat-, SUSE- oder Archlinux-basierte Systeme betrieben werden.

Die Zuweisung von Hardware-Ressourcen an Container orientiert sich während Proxmox VE an virtuellen Maschinen.
Die Zuweisung von Hardware-Ressourcen an Container orientiert sich innerhalb Proxmox VE an virtuellen Maschinen.
Flexibles Storage-Konzept genauso für Container
Das Storage-Konzept der Proxmox-Container macht es außerordentlich einfach, all die differenzierten Storage-Arten zu nutzen, die Proxmox VE offeriert. Jedweder Container kann etliche Mount Points haben – anwendungsspezifisch lassen sich dadurch je nach Bedarf lokaler Speicher, Shared Storage wie iSCSI oder NFS und gleichfalls verteilte Systeme mit Ceph implementieren. Bei den genauer minimalistischen Container-Ansätzen a la Docker ist das etliche Male lediglich mit großem Aufwand glaubwürdig. Wie im Zuge virtuellen Maschinen (VMs) sind ebenso im Zuge Containern Snapshots mit einer breiten Palette von Opportunitäten wie genauso Migrationen auf zusätzliche physische Hosts binnen eines Clusters wahrscheinlich. Im Gegensatz zu VMs müssen sie hierzu nichtsdestotrotz kurz heruntergefahren werden. Live-Migrationen von Containern hilft Proxmox nicht.

Banner Vektor erstellt von vector4stock – de.freepik.com

Templates für schnelles Deployment

Um Container unmittelbar zu einrichten, stehen zwei Rubriken von Images zur Auswahl: Die vom Proxmox-Team darüber hinaus gepflegten Templates für sämtliche gebräuchlichen Linux-Distributionen und die Templates vom Turnkey Linux Projekt, das Linux-Images für über 100 vorkonfigurierten Stacks und Web-Applikationen bereitstellt. Letztere sind primär spannend, um in ein paar Schritten eine komplexe, mehrstufige Application bereitzustellen und sich die Finessen der Datenbank- und Webserverkonfiguration zu ersparen. Einige Beispiele für Turnkey-Templates:

– Nextcloud
– WordPress
– Mattermost
– Moodle
– OpenVPN

Im Gegensatz zu den generischen Proxmox-Templates sind Turnkey Linux Templates nicht im Besonderen auf Proxmox VE angepasst. In der Praxis kann es demzufolge manchmal obligatorisch sein, binnen der Montage händisch nachzuarbeiten. Das beruft sich überwiegend den Betrieb in unprivilegierten Containern, weil manche Dienste mit den eingeschränkten Benutzer IDs nicht korrekt initiieren. Meist findet sich im Proxmox-Userforum oder auf den Github-Seiten des LXC-Projekts eine Problembeseitigung. Wer selbständig Templates anlegen möchte, kann hierzu die Werkzeuge der passenden Linux-Distribution nutzen, exemplarisch den Debian Appliance Builder.

Für das rasche Aufsetzen von Servern stehen Templates aller wichtigen Linux-Distributionen und eine Vielzahl von vorkonfigurierten Web-Applikationen zur Bereitschaft.
Für das schleunige Aufsetzen von Servern stehen Templates aller wichtigen Linux-Distributionen und eine Vielzahl von vorkonfigurierten Web-Applikationen zur Bereitschaft.

Proxmox Container Fazit:
Hinsichtlich Handhabung und Verwendungszweck stellt Container-Virtualisierung mit Proxmox einen Kompromiss inmitten virtuellen Maschinen (VMs) und den dieser Tage außergewöhnlich populären leichtgewichtigen Microcontainern dar. Dank nahtloser Einbindung in GUI und Tools von Proxmox VE benötigt ein Administrator weder tiefgreifende Kenntnisse von Linux Container (LXC) selbst, noch benötigt er ein Orchestrierungs-Framework wie Kubernetes. Zur Versorgung von Microservices, binnen denen die Gleichung „Ein Container – ein Dienst“ gilt, eignen sich Proxmox Container hingegen weniger. Für die zügige und gleichwohl erweiterbare Anlieferung kompletter Web-Applikationen oder Test- und Entwicklungssystemen auf Linux-Basis sind sie durchaus einwandfrei.