Tags: Hyper-V, Windows Server 2016, Container
Container in Windows Server 2016 isolieren Anwendungen auf physischen und virtuellen Maschinen oder noch eine Stufe weiter in einem verschachtelten Hyper-V. Sie werden aus Container-Images erstellt, sind transportabel und skalieren schnell. Ab Server 2016 Standard lässt sich das Feature aktivieren und mit PowerShell oder Docker administrieren.
Microsoft unterscheidet zwischen zwei Container-Deployments, und zwar zwischen Windows Server Containern und Hyper-V Containern (Hyper-V Container in einer VM erfordern eine Nested Virtualization). In diesem und einem folgenden Artikel gehe ich auf die Funktionsweise der Windows Server Container ein. Hintergrundinformationen zu Windows Server mit Docker Technologie finden Sie in unserem Beitrag Alternative zu VMs, Windows Server 2016 unterstützt Docker-Container.
Container im Vergleich zu virtuellen Maschinen
Hyper-V muss jede VM und ihr darin enthaltenes OS starten, Ressourcen wie vCPUs, RAM usw. zuteilen bis seine physischen Kapazitäten zur Neige gehen. Außerdem unterliegen die Gastbetriebssysteme dem ständigen Update-, Hardening- und Wartungsprozess.
Container auf einem Container-Host hingegen starten nicht mit einer eigenen OS-Kopie, sondern teilen sich ein Host-Betriebssystem und haben von Anfang an einen schmaleren RAM-Footprint.
Die Applikation im Container sieht nur ihre dedizierte Umgebung, startet schnell und nutzt nur den Speicher, den sie benötigt. Somit lässt sich damit eine höhere Dichte von Anwendungen auf einem Host erreichen als auf einem Hypervisor.
Container OS Images als Basis für neue Container
Wenn wir über Container sprechen, dann beziehen wir uns auf dateibasierte und schreibgeschützte Container-Vorlagen. Container OS Images können auf Core- oder Nano Server beruhen und weisen somit die vertraute Windows-Verzeichnisstruktur auf (Programme, Programme (x86), Benutzer, Windows, usw.). Bei manueller Container-Erstellung wird auf Basis dieses Images eine "Sandbox" eingerichtet, welche zur darunter liegenden Windows Struktur verlinkt.
Wie die folgende Tabelle zeigt, eignet sich nicht jedes Image für jeden Container-Host:
Host Operating System | Windows Server Container | Hyper-V Container |
---|---|---|
Windows Server 2016 Full UI | Server Core oder Nano Server Image |
Server Core oder Nano Server Image |
Windows Server 2016 Core | Server Core oder Nano Server Image |
Server Core oder Nano Server Image |
Windows Server 2016 Nano | Nano Server Image | Server Core oder Nano Server Image |
Windows 10 ab 1607 | Nicht verfügbar | Server Core oder Nano Server Image |
Installiert man nun in diese Sandbox eine Applikation, beispielsweise einen Web-Server, dann wird etwa das Verzeichnis \inetpub in der Sandbox angelegt. Wird die Sandbox gestoppt, kann hieraus wieder ein Read-only-Image inklusive IIS abgeleitet werden und alle grundlegenden OS-Verzeichnisse verweisen weiter auf das Basis-Image. So lassen sich auf identischer Grundlage mehrere Ebenen aufbauen.
Windows Server-Container und Hyper-V Container
Unter anderem durch die Namespace-Technologie und Resource-Zuweisung (bekannt von LXC, Linux Containers) ist es möglich, Container gegeneinander zu isolieren. Die Isolation mittels Namespace gewährleistet, dass jeder Container sein eigenes Dateisystem und seine Registry sieht. Bei der Resource Isolation wird dem Container vorgegeben, wieviel RAM, CPU und Netzwerkbandbreite er nutzen kann.
Doch Windows Server Container teilen sich gemeinsam Bereiche des OS Kernels und haben theoretisch auf dieser Ebene Berührungspunkte. Kommt es zu einer Kompromittierung im Container oder einem fehlerhaften Update des Kernels, dann wären alle Container davon betroffen. Hyper-V Container hingegen erreichen durch die zusätzliche Hypervisor-Ebene einen noch höheren Isolationsgrad gegenüber benachbarten Containern und dem Host.
Es handelt sich dabei um leichtgewichtige VMs, optimiert für Container und mit einer eigener Kopie des OS-Kernels. Das zusätzliche Maß an Sicherheit, etwa um Mandanten in Azure strikter voneinander zu trennen, macht sich durch ein langsameres Startverhalten und einer nicht so hohen Applikationsdichte wie bei Windows Server Containern bemerkbar.
Auch wenn es sich bei den beiden Container-Typen um verschiedene Technologien handelt, ist eine Entscheidung für einen von ihnen nicht endgültig. Von Windows Server Containern zu Hyper-V Containern kann nämlich umgeschaltet werden und auch der umgekehrte Weg ist möglich:
Einsatzgebiete für Container
Container starten zügig und sind wartungsarm. Durch ihre isolierte Umgebung lassen sie sich gut transportieren. Einem Administrator oder Mitgliedern des DevOps-Teams ist es möglich, Windows Container mit Applikationen zu konfigurieren und dann als Paket ohne große Abhängigkeiten in die Server-Umgebung zu transferieren und dort zu testen.
Ein Beispiel für eine isolierte Container-Anwendung wären etwa die Internet Information Service (IIS). Container können nicht nur on-premises ausgeführt werden, sondern lassen sich leicht in die Azure Cloud auslagern.
Täglich Know-how für IT-Pros mit unserem Newsletter
Marcel Küppers arbeitet seit über 25 Jahren in der IT, aktuell als Team Leader, zuvor als Consultant und Infrastructure Architect unter anderem für den japanischen Konzern JTEKT/TOYODA mit Verantwortung über die Europastandorte Krefeld und Paris. Darüber hinaus wirkte er als Berater im EU-Projekt-Team für alle Lokationen des Konzerns mit und ist spezialisiert auf hochverfügbare virtualisierte Microsoft-Umgebungen plus Hybrid Cloud Solutions. Zertifizierungen: MS Specialist und MCTS für Hyper-V/SCVMM, MCSE, MCITP, MCSA. Zusätzlich zertifiziert für PRINCE2 Projektmanagementmethode.
// Kontakt: E-Mail, Twitter, LinkedIn //
Verwandte Beiträge
- Windows Server 2016: Die wichtigsten Neuerungen im Überblick
- Windows Server 2016 TP4: mehr Nano-Rollen, Hyper-V Container, VM-Zugriff auf PCI-Geräte
- Windows Admin Center v2009: Erweitertes Management von Hyper-V und File-Services, Docker-Installation
- Windows Server 1803: Neue Container-Features, Abwertung für Semi-annual Channel
- AVMA: Windows Server in virtuellen Maschinen auf Hyper-V automatisch aktivieren
Weitere Links
3 Kommentare
Sehr gute Einführung.
Folgt noch ein HowTo über die Erstellung und Verwaltung der Windows Container?
Hallo Simon,
Sehr gute Einführung.
Vielen Dank für Dein positives Feedback!
Folgt noch ein HowTo über die Erstellung und Verwaltung der Windows Container?
Es folgt auf jeden Fall eine Anleitung zu Windows Containern sofort im Anschluß und der Plan war mehr Details in weiteren Artikeln zu verfassen, z.B. Netzwerk-, Ressourcenverwaltungen, etc. Auch die Idee zu weiteren Anwendungsbeispielen, außer IIS, verfolge ich weiter.
Besten Gruß!
Folgt noch ein HowTo über die Erstellung und Verwaltung der Windows Container?
Es folgt auf jeden Fall eine Anleitung zu Windows Containern sofort im Anschluß
Der zweite Beitrag ist jetzt online:
https://www.windowspro.de/marcel-kueppers/anleitung-windows-server-2016-container-erstellen