Essential Guide

Linux-Container: Grundlagen, Risiken und Anwendungsfälle der Container-Virtualisierung

Eine umfassende Auswahl von Artikeln, Videos und mehr, die von unseren Redakteuren gewählt wurden.

Docker: Wie Linux-Container Ihr Netzwerk verändern werden

Docker verwendet Linux-Container und ist eine leichtgewichtige Alternative zu Hypervisoren. Netzwerk-Administratoren sollten sich damit befassen.

Linux-Container (LXC) könnten Dank des Open-Source-Tool-Sets Docker in die produktiven Data Center der Welt zurückkehren....

Für Netzwerktechniker und -Administratoren resultieren daraus das sowohl Chancen als auch Herausforderungen.

Linux-Container sind ein Software-Konstrukt, das eine Anwendung und zugehörige Abhängigkeiten hosten kann. Das Ganze läuft als isolierter Prozess im Linux-Kernel. In Container gesteckte Applikationen dürfen den Kernel mit anderen Containern gemeinsam nutzen. Die Open-Source-Software Docker macht diese Linux-Container portabel, skalierbar und sicher. Docker Inc. ist die Firma hinter dem Open-Source-Projekt. Die Version Docker 1.0 wurde im Juni 2014 vom Stapel gelassen und dafür bietet das Unternehmen auch kommerzielle Unterstützung an.

Docker-Container sind eine potenzielle Alternative oder möglicherweise sogar eine Verbesserung verglichen mit Hypervisor-Technologie. Bei einem Host mit einem Hypervisor bringt jede virtuelle Maschine (VM) zusätzlich zur Applikation ein eigenes Gast-Betriebssystem mit sich. Ein Docker-Container benötigt dagegen kein eigenes Gast-Betriebssystem. Die Anwendung und dazugehörige Abhängigkeiten laufen ganz einfach in einem Container, der auf dem Host-Betriebssystem aufgesetzt ist.

„Ein Linux-Container … ist ein Konstrukt, mit dem Sie eine Anwendung isoliert auf einem Host-Betriebssystem laufen lassen können. Virtuelle Maschinen bestehen aus einer Anwendung, die einige MByte hat und einem Gast-Betriebssystem, das einige GByte beansprucht. Eine VM emuliert einen kompletten Server, der mithilfe eines Hypervisors läuft. Letzteren installiert man wiederum auf einem Host-Betriebssystem.“, sagte Ben Golub. Er ist CEO bei Docker Inc. „Container sind außerordentlich leichtgewichtig. Die Dichte ist bis zu 80 Prozent höher und die Startzeiten, sowie das Herunterfahren sind mit Docker wesentlich schneller als bei einer herkömmlichen VM.“, fügte er an.

Wie bei Hypervisoren haben System-Administratoren bei Docker-Containern die Möglichkeit, Computing-Ressourcen innerhalb eines Servers und über das Data Center zu verteilen. Diese Container führen genau wie Hypervisoren neue virtuelle Netzwerkelemente ein, mit denen sich Netzwerk-Administratoren beschäftigen sollten.

Die Grundlagen von Docker Networking

„Docker gibt Ihnen alle Optionen an die Hand und Sie dürfen bestimmen, welche Container sich im Netzwerk mit welchen verbinden dürfen.“, sagte Golub. „Sie können eine sehr komplexe Applikation nehmen, alle Komponenten davon mit Docker behandeln lassen und sie dann über eine große Anzahl an Servern verteilen und koordinieren.“, fügte Golub an.

Die Stammfunktion bei Docker ist eine Ethernet-Brücke (Bridge), die sich „docker0“ nennt. Startet Docker auf einem Linux-Server, erstellt die Software per Standard eine docker0-Bridge innerhalb des Linux-Kernels. Docker0 kreiert wiederum ein virtuelles Subnetz auf dem Docker-Host. Die Software kann nun Pakete zwischen Containern auf diesem Host hin und her schicken.

Docker erschafft auch ein Paar an virtuellen Ethernet-Schnittstellen für jeden Container. Die IP-Adressen werden zufällig vergeben. Weiterhin erstellt das Programm ein Subnetz mithilfe eines privaten Adressraums, der noch nicht vom Host-Server in Benutzung ist.

Dockers Netzwerkelemente wurden so ausgelegt, dass Sie von Applikations-Entwicklern benutzt werden können. Möglicherweise wollen Entwickler zunächst einen Container auf dem eigenen Notebook hochfahren und dann eine Verbindung zu den verschiedenen Elementen herstellen, die sie zum Programmieren benötigen.

„Durch den Einsatz von Docker müssen Sie sich nicht um die IP-Adressen und Netzwerk-Schnittstellen auf einem Container-Host kümmern.“, sagte Mike Lowell. Er ist Produkt-Management-Ingenieur bei F5 Networks. Dort verwendet man Docker in der eigenen Entwicklungs-Umgebung. „Sie müssen die Software nicht konfigurieren. Es funktioniert einfach. Gibt es Container auf mehreren Servern, dann müssen Sie sich mit den üblichen Netzwerkproblemen beschäftigen.“, fügte er an.

Im Moment hat Docker „noch nicht viel zu sagen“ zu Netzwerkverbindungen und Services, die über mehrere Maschinen verteilt sind, sagte Lowell. Die einfachen Netzwerkelemente in Docker stellen diverse Verbindungen zur Verfügung. Es gibt allerdings keine Eintritts-Punkte für zum Beispiel Load Balancer oder Firewalls.

Entwickler können mit Docker Container einfach portieren. Die Verbindung via docker0 ist in Entwicklungs-, Test- und Staging-Umgebungen gleich. Einige frühe Nutzer portieren diese Container sogar schon in produktive Umgebungen. An dieser Stelle sind dann auch die Netzwerk-Profis involviert.

„Es ist genau wie damals als VMware auf den Markt kam. Dort ging ein einzelnes VLAN zu einem Server und plötzlich waren zehn virtuelle Maschinen auf einem einzigen Host im selben Subnetz am Laufen und die Netzwerk-Jungs hatten keine Ahnung davon.“, sagte Jason Edelman. Er ist Netzwerk-Administrator bei einem großen System-Integrations-Unternehmen. „Im Hinblick auf Docker ist es so, dass ein einzelner App-Entwickler leicht 50 Container betreiben kann, die alle das standardmäßige Docker-Konstrukt verwenden. Das bedeutet für das Netzwerk mehr Endpunkte, was sich wiederum auf die MAC-Tabellen-Größe und andere verwandte Attribute auswirken kann. Ich habe bisher noch nicht von Kunden gehört, dass sie sich eindringlich mit Docker befassen. Es ist aber durchaus möglich, dass plötzlich neue Applikationen auf einem Docker-Server ohne das Wissen der Netzwerk-Teams auftauchen.“, fügte er an.

Befindet sich Docker in Ihrer Umgebung, klinken Sie sich ein

Server-Virtualisierung bleibt ein Konfliktherd zwischen Netzwerk- und System-Teams. Sie streiten sich weiterhin, wer was in einem virtuellen Netzwerk kontrolliert, das sich auf den jeweiligen Hosts befindet. Docker-Container könnten ein neuer Schauplatz sein, auf dem solche Querelen ausgetragen werden.

„Es ist ein Hauen und Stechen innerhalb der IT-Abteilungen, die sich um die Kompetenzen streiten.“, sagte Eric Hanselman. Er ist leitender Analyst bei 451 Research. „Virtualisierung hat diverse Fähigkeiten in unterschiedliche Bereiche der IT eingeführt. Es gab Server-Leute, die neue Netzwerke hochfahren konnten. Das gleiche passiert in der Container-Welt. Der Unterschied ist, dass wir vom Applikations-Bereich sprechen. Es wird mit Sicherheit eine Ausuferung in Sachen Container geben.“, meint Hanselman.

Netzwerkprofis haben die Chance, Kontrollmechanismen einzuführen, die solche Ausuferung verhindert. Zum einen können Anwender von Docker die Standard-Netzwerkfunktionen durch OVS (Open vSwitch) und andere native Linux-Netzwerkelemente ersetzen. OVS ist für die meisten Netzwerk-Administratoren nun keine fremde Technologie mehr. Sie könnten diese einsetzen, um die Ordnung aufrecht zu erhalten.

„Als Netzwerkmensch sage ich, dass Sie Ihre Container einfach mit OVS betreiben sollen und es funktioniert genau wie bei virtuellen Maschinen.“, sagte Edelman. Er hat einen Blog-Eintrag geschrieben, in dem er über seinen frühen Test mit Docker berichtet.

Orchestrierung bedeutet Ordnung und Herausforderung für Docker-Netzwerke

OpenStack arbeitet ebenfalls an Orchestrierung mit Nova für Docker-Container. Das ist laut Edelman sehr ähnlich wie die Orchestrierung bei virtuellen Maschinen. Ist das der Fall, wird OpenStack seine Neutron-Netzwerkelemente auch auf Docker übertragen.

Um den Orchestrierungs-Anforderungen für die Container über mehrere Hosts verteilt gerecht zu werden, entwickelt die Docker-Community einige Orchestrierungs-Tools. Libchan und Libswarm sind zwei prominente Beispiele, die Orchestrierung von Netzwerk-Services ermöglichen. Netzwerkprofis sehen diese Tools möglicherweise eher problematisch.

„Libchan und Libswarm sind den heutzutage eingesetzten Overlays fast schon einen Schritt voraus.“, sagte Edelman. „Overlays abstrahieren das physische Netzwerk. Libchan in Docker will eine noch größere Abstraktion realisieren. Es liegt in den Händen der Entwickler, die den Code im jeweiligen Container schreiben. Wie sieht es aber mit Statefulness und Layer-4-bis-7-Services aus? Wie werden sie implementiert, wenn man diese eingebetteten Kanäle verwendet?“, fragte Edelman.

Netzwerk-Overlay-Anbieter wie VMware NSX, Nuage Networks und PlumGRID haben laut Hanselman die Möglichkeit, eventuell auftretenden Netzwerkproblemen entgegenzuwirken, die von Docker ausgehen.

„Der gesamte Nutzen liegt bei Integration mit Orchestrierung.“, sagte er. „Damit das funktioniert, müssen Sie all die zusätzlichen Netzwerkfunktionen mit der regulären Applikations-Orchestrierung verknüpfen. Nuage, VMware NSX oder PlumGRID stellen die Möglichkeit zur Verfügung, diese Kopplung zu realisieren.“

Artikel wurde zuletzt im September 2014 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Essential Guide

Linux-Container: Grundlagen, Risiken und Anwendungsfälle der Container-Virtualisierung

0 Kommentare

Älteste Beiträge 

Passwort vergessen?

Kein Problem! Tragen Sie Ihre E-Mail-Adresse unten ein. Wir werden Ihnen eine E-Mail mit Ihrem Passwort schicken.

Ihr Passwort wurde an die folgende E-Mail-Adresse gesendet::

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchDataCenter.de

SearchEnterpriseSoftware.de

Close