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.

Von Sicherheit bis Management: Fünf Probleme bei der Container-Virtualisierung

Container-Virtualisierung liegt derzeit groß im Trend. Abseits der vielen Vorteile bringen Container aber auch einige Probleme mit sich.

Genaugenommen sind Linux-Container eigentlich eine altbekannter Virtualisierungs-Technologie, die letztlich nur...

aufgrund des starken Interesses an Cloud-Computing, der damit einhergehenden Veränderung bei der Anwendungsentwicklung sowie der Verfügbarkeit neuer Container-Frameworks wie Docker in letzter Zeit so viel Aufmerksamkeit erregt hat.

Auf dem Gartner IT Operations Strategies and Solutions Summit 2015 in Orlando hat Gartners Vice President Thomas Bittman einen Vortrag über Vor- und Nachteile der Container-Virtualisierung gehalten. Über die Vorteile wurde in letzter Zeit ausgiebig geschrieben, viel interessanter sind daher mögliche Probleme und Wege, diesen beizukommen.

1. Container-Virtualisierung eignet sich nicht für alle Applikationen

Container bieten zwar ein hohes Maß an Flexibilität, sind aber sicherlich kein geeigneter Ersatz für jede virtuelle Maschine. Genauso wie manche Anwendungen in den Anfangstagen der Server-Virtualisierung besser für physische Maschinen geeignet waren, so eignen sich manche Applikationen auch nicht für die Container-Virtualisierung.

Linux-Container richten sich in erster Linie an auf Mikro-Services basierte Anwendungen. Bei diesem Ansatz werden komplexe Applikationen aus grundlegenden Bausteinen zusammengesetzt, die wiederum in Containern ausgeführt werden. Die entsprechend für die Applikation benötigten Container werden dann miteinander verbunden. Die Funktionalität der Anwendung lässt sich dann durch das Hinzufügen einzelner Bausteine je nach Bedarf skalieren, ohne dass eine komplette zweite Anwendung bereitstellen müsste.

Allerdings gibt es auch viele Anwendungen, die monolithisch entwickelt wurden, und für die sich dieser Container-basierte, modulare Ansatz daher nicht eignet. In diesen Fällen würden Container den Workload sogar eher behindern. Manchmal muss man daher einfach ausprobieren, ob Container-Virtualisierung für bestimmte Applikationen einen Vorteil bringt oder nicht. Neue Cloud-Applikationen werden aber durchweg von den Möglichkeiten der Container-Virtualisierung profitieren.

Anwendungen, die sich nicht für die Ausführung in Linux-Containern eignen, können natürlich auch weiter parallel zu Container-Bereitstellungen als virtuelle Maschine auf Basis eines Hypervisors ausgeführt werden.

2. Probleme mit komplexen Abhängigkeiten

Herkömmliche virtuelle Maschinen arbeiten extrem isoliert und jede VM nutzt ein eigenes Betriebssystem mit eigenen Treibern und Anwendungskomponenten. Virtuelle Maschinen können auch problemlos auf ein anderes System migriert werden, solange ein entsprechender Hypervisor zur Verfügung steht. Im Gegensatz dazu werden Container auf einem physischen Betriebssystem ausgeführt und teilen sich große Teile des zugrundeliegenden Kernels mit vielen Libraries und Binaries.

Diese gegenseitigen Abhängigkeiten verschiedener Container vom Container-Host führen letztlich zu einer begrenzten Portabilität. Linux-Container unter Docker können derzeit beispielsweise nicht auf Windows Server ausgeführt werden, auch wenn Microsoft an einer entsprechenden Docker-Unterstützung arbeitet.

Die Antwort auf dieses Problem ist weniger eine Lösung als vielmehr die Anerkennung dieser Abhängigkeiten. Container können innerhalb von Sekunden gestartet und ausgeliefert werden und mit Red Hats RHEL 7 Atomic Host oder Microsofts Nano Server entstehen gerade viele spezielle Betriebssystemvarianten, die eine außergewöhnlich hohe Stabilität und enorm schnelle Startzeiten bieten. In ihrer nativen Umgebung weisen Container eine höhere Verfügbarkeit auf und können dabei ohne Probleme migriert werden, solange im Data Center andere Server verfügbar sind.

Die Abhängigkeiten im Zusammenhang mit Containern dürften zukünftig auch geringer werden. Windows Server 2016 beispielsweise wird nicht nur native Hyper-V-Container, sondern auch Docker unterstützen. Jenseits von Docker gibt es zudem weitere Container-Plattformen wie LXC, Parallels Virtuozzo, Joyent, Canonical LXD oder auch CoreOS Rocket. Auch VMware ist mit Project Photon im Markt für Container-OS unterwegs, zudem wurde vergangene Woche auf der DockerCon 2015 unter großer Beteiligung aus der Industrie das Open Docker Project vorgestellt, das eine Standardisierung der Container-Virtualisierung herbeiführen soll.

3. Geringe Isolierung als Sicherheitsproblem

Hypervisor-basierte Virtualisierung bietet ein hohes Maß an Isolierung der einzelnen virtuellen Maschinen, weil hierbei sämtliche Hardwareressourcen getrennt virtualisiert werden und jeder VM auch getrennt zur Verfügung gestellt werden. Daher kann ein Bug, Malware oder ein Angriff typischerweise auch nur eine virtuelle Maschine kompromittieren, aber nur selten gleichzeitig auch andere VMs oder gar die gesamte virtuelle Umgebung.

Die Sicherheit von Container-Umgebungen ist demgegenüber weitaus schwächer ausgeprägt, weil Container einen gemeinsamen Betriebssystem-Kernel miteinander teilen und normalerweise mit hohen Zugriffsrechten ausgestattet sind, in Linux-Umgebungen meist mit Root-Zugriff. Als Folge hiervon bergen Angriffe und Malware-Vorfälle ein weitaus höheres Sicherheitsrisiko, den darunterliegenden Container-Host sowie auch andere Container zu kompromittieren.

Die Industrie reagiert derzeit auf diese Sicherheitsbedenken und sucht nach verschiedenen Lösungswegen. Red Hat beispielsweise arbeitet mit begrenzten Zugriffsrechten und einer Container-Zertifizierung, VMware dagegen führt mit dem neu vorgestellten Project Bonneville Container in einer vSphere-basierten virtuellen Maschine aus. 

Dieser Ansatz führt dazu, dass ein innerhalb einer virtuellen Maschine ausgeführter Container, selbst wenn er kompromittiert wurde, außerhalb der virtuellen Maschine keinen Schaden anrichten kann. Auf die gleiche Weise wäre es beispielsweise auch möglich, auf Hyper-V eine Linux-VM zu installieren, in der schließlich Docker-Container gehostet werden.

4. Ohne Lifecycle-Management droht Container-Wildwuchs

Während das Lifecycle-Management für Hypervisor-basierte Umgebungen wichtig ist, ist es für Container-Umgebungen ein absolut kritischer Bestandteil. Container können in einer erstaunlichen Geschwindigkeit gestartet und dupliziert werden. Das mag ein großer Vorteil der Container-Virtualisierung sein, gleichzeitig besteht aber auch das Risiko, enorm viele IT-Ressourcen zu verbrauchen, ohne es wirklich zu merken.

Das wäre an sich noch kein Problem, wenn die angelegten Container auch wieder beendet oder gelöscht werden, sobald sie nicht mehr benötigt werden. Wird dies aber nicht ordentlich nachverfolgt und sichergestellt, dann besteht das große Problem hoher Cloud-Kosten, wenn Container-Anwendungen hoch- und später nicht wieder herunterskaliert werden.

5. Mangel an Management-Tools für Container-Umgebungen

Derzeit gibt es noch immer einen deutlichen Mangel an Tools zum Monitoring und Management von Container-Umgebungen, so ähnlich wie auch der Markt für Hypervisor-basierte Virtualisierung in seinen Anfängen ein solches Defizit aufwies. Genauso wie inzwischen eine Vielzahl an Tools zum VM-Management vorhanden sind, entstehen derzeit viele neue Werkzeuge zum Container-Management. 

Dazu zählen zum Beispiel das wohl allseits bekannte Open-Source-Tool Kubernetes von Google, Machine, Swarm und Compose von Docker selbst oder auch DockerUI, das die Linux-Kommandozeile gegen ein webbasiertes Front-End austauscht oder Logspout, das Log-Dateien von Containern an einer zentralen Stelle zusammenführt.

In manchen Fällen lässt sich das Fehlen von Management-Tools dadurch ausgleichen, dass Container in einer virtuellen Maschine ausgeführt werden und anschließend Software zum Management und Monitoring virtueller Maschinen zum Einsatz kommt. Da es weitaus mehr VM-Tools gibt, die zudem auch weitaus ausgereifter sind, könnte dies eine akzeptable Alternative sein, solange Container-Tools noch auf sich warten lassen.

Abseits dieser Probleme machte Thomas Bittman aber auch deutlich, dass Container große Vorteile für virtuelle Umgebungen versprechen: eine schnelle, leichtgewichtige Bereitstellungsmethode für dichte und skalierbare Serverumgebungen, nicht-virtualisiertes I/O für eine bessere Performance, schnell verfügbare Frameworks wie Docker und natürlich auch Sharing-Tools wie GitHub. Trotzdem sind Container aber keine Lösung für jeden virtualisierten Workload, sondern eben nur ein weiteres Tool im Virtualisierungs-Werkzeugkasten.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im Juli 2015 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

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close