Zum Hauptinhalt springen

Virtualization vs Containerization

·6 min·
Guide Virtualization Server Docker
Autor
Andreas
Ich bin Andreas - die Person hinter XenoElectronics. Ich bin nicht hier, um Ihnen Buzzwords zu verkaufen. Ich bin ein praktischer Linux- und Infrastruktur-Admin, der Systeme baut und dokumentiert, die tatsächlich funktionieren. Ob Docker, Ansible, Bash oder die Fehlersuche bei einem defekten NFS-Mount - wenn es in meinen Unterlagen steht, habe ich es selbst ausprobiert. Ich baue, teste, scheitere, repariere und schreibe es auf - damit andere keine Zeit verschwenden müssen. Brauchen Sie Hilfe? Fragen Sie. Wenn ich es schon einmal gelöst habe, bekommen Sie eine klare Antwort.
Inhaltsverzeichnis

Nützliche Links#

Container-Engines

Docker: https://www.docker.com/get-started/

Kubernetes: https://kubernetes.io/

Podman: https://podman.io/

Container-GUI-Tools

Rancher: https://www.rancher.com/

Longhorn: https://longhorn.io/

Portainer: https://www.portainer.io/

Hypervisor

Was ist KVM: https://www.redhat.com/en/topics/virtualization/what-is-KVM

Virtmanager: https://virt-manager.org/

Qemu: https://www.qemu.org/

XEN: https://xenproject.org/

Proxmox: https://www.proxmox.com/en/products/proxmox-virtual-environment/overview

Was ist Virtualisierung?
#

Bevor wir über die Unterschiede sprechen und darüber, wann man was benutzt, müssen wir zunächst klären, was eine VM ist.

Die TLDR-Version, sonst ist sie zu lang, ist, dass virtuelle Maschinen Betriebssysteme sind, die auf anderen Betriebssystemen laufen.

Sie können hier mehr lesen

https://www.redhat.com/en/topics/virtualization/what-is-a-virtual-machine

Warum virtualisieren wir?
#

In der Vergangenheit war das nicht wirklich sinnvoll, weil damals alle Server die gesamte Hardware nutzten und die Hardware daher immer nur eine Aufgabe hatte.

Heutzutage ist die Hardware jedoch unglaublich leistungsfähig geworden, so dass manche Dienste nur einen Bruchteil der Hardware nutzen und es daher eine totale Verschwendung wäre, nicht mehrere Server auf einem zu betreiben.

Was ist der Unterschied zwischen VMs und Containern?
#

Zunächst einmal ist hier eine Grafik, die zeigt, wie VMs und Container grob aussehen.

image

Der Unterschied ist gering, aber es gibt definitiv einige. Hier ist eine Tabelle, die die wichtigsten kurz zusammenfasst:

TopicHypervisorContainer
KernelHat seinen eigenen KernelTeilt den Kernel mit dem Host
StartgeschwindigkeitLangsam, da die VM ihren Kernel starten muss und mehr Betriebssystemkomponenten geladen werden müssen, da es sich um ein vollständiges Betriebssystem handeltSchnell, da der Kernel bereits vom Host gestartet wird und weitaus weniger Betriebssystemkomponenten geladen werden müssen, da er gerade genug hat, um einen Dienst auszuführen
RessourcenauslastungHoch, da ein komplettes Betriebssystem geladen werden mussGering, da nur ein Dienst ausgeführt wird
SkalierbarkeitWeniger flexibel, da Änderungen auf der Festplatte der VM gespeichert werden müssen. Daher ist eine zentralisierte Speicherung schwer zu implementieren.Sehr gut, da alle Daten im Container für den Dienst verfügbar sind. Änderungen werden in Volumes gespeichert und können zentralisiert werden, so dass alle Container die gleichen Daten verwenden.

Container
#

Vorteile und Nachteile von Containern
#

Einige Dinge wurden bereits in der Tabelle angesprochen, aber nicht alles.

Container haben den großen Vorteil, dass sie extrem wenig Ressourcen benötigen und auf allen Servern gleich laufen. Die Phrase “Aber es läuft auf meinem Gerät“ ist mit Containern also gelöst.

Ein Nachteil ist allerdings der Kernel. Denn wenn man einen Cluster nutzt und einen Container von einem Server auf einen anderen migrieren will, geht das nicht nahtlos. Denn er muss erst heruntergefahren werden und erst dann kann er migriert werden. Das macht eigentlich Sinn, weil er den Kernel des Hosts verwendet und dann den Kernel des neuen Hosts verwenden muss. Eine VM hat dieses Problem nicht, da sie ihren eigenen Kernel hat.

Wo setzen Sie Container ein?
#

Container haben einen bestimmten Zweck, nämlich Microservices. Sie haben also nur einen Dienst und sonst nichts.

Ein Container kann zum Beispiel eine Datenbank sein und sonst nichts, ein anderer Container kann eine Chat-Anwendung sein und dann mit dem Datenbank-Container kommunizieren, um die Daten zu speichern.

Das klingt zunächst unnötig, hat aber den Vorteil, dass, wenn der Datenbankserver ausgelastet ist, derselbe Container in Sekundenschnelle auf einem anderen Server gestartet werden kann, so dass die Last verteilt wird.

Container-Engines
#

Es gibt nicht so viele Container-Engines, die populär sind, aber hier sind 3 Empfehlungen.

Docker
#

Docker ist der Standard in der Industrie. Ich empfehle jedoch die Verwendung von Portainer, weil es einfacher ist, die Container auf diese Weise zu verwalten

Docker: https://www.docker.com/get-started/

Portainer: https://www.portainer.io/

Podman
#

Podman ist eine von Redhat entwickelte Container-Engine. Der Unterschied zu Docker ist, dass es Agendless ist.

Docker verwendet zur Verwaltung der Container einen Systemd-Dienst, den Docker-Damon. Dieser läuft mit dem Root-Benutzer. Das kann zu Sicherheitsproblemen führen, wenn dieser Dienst gehackt wird.

Podman-Container werden stattdessen mit Shell-Befehlen ohne Root verwaltet.

Podman: https://podman.io/

Kubernetes
#

Kubernetes benötigt einen eigenen Guide, da es unglaublich komplex ist. Aber kurz gesagt ist es ein Orchestrator für die Massenverwaltung von Containern auf verschiedenen Servern. Es ist also sinnvoll, wenn Sie Dienste haben, die eine hohe Verfügbarkeit erfordern.

Ein sehr guter grafischer Manager für Kubernetes ist Rancher in Kombination mit Longhorn

Kubernetes: https://kubernetes.io/

Rancher: https://www.rancher.com/

Longhorn: https://longhorn.io/

Virtuelle Maschinen
#

Vorteile und Nachteile von virtuellen Maschinen
#

Virtuelle Maschinen haben den Vorteil, dass sie alles tun können, was ein normaler PC oder Server auch kann. Sie sind daher sehr flexibel in ihren Einsatzmöglichkeiten.

Im Gegensatz zu Containern können sie auch Hardware nutzen, um ihre Funktionen zu erweitern.

Der Nachteil ist die hohe Belastung des Hosts, da immer ein komplettes Betriebssystem laufen muss, auch für kleine Dienste. Updates können daher auch lästig sein, da ein komplettes Update des Betriebssystems gemacht werden muss und nicht nur ein neues Container-Image, das gezogen werden muss.

Wo verwenden Sie vms
#

Sie sind immer dann sinnvoll, wenn Sie den Dienst nicht in einem Container implementieren können, sei es als Desktop oder als Maschine, die viele Dienste gleichzeitig ausführen muss, oder wenn Sie Hardware in einer VM nutzen müssen.

Auch für alte Betriebssysteme ist es sinnvoll, eine VM zu verwenden.

Arten von Hypervisoren
#

Es gibt verschiedene Arten von Hypervisoren, wobei ich mich wie immer nur auf die Open-Source-Versionen beziehe, damit Sie sie selbst verwenden können.

Man könnte hier näher auf Hypervisor Typ 1 und Hypervisor Typ 2 eingehen, aber heutzutage ist der Unterschied fast nicht mehr vorhanden. Hypervisor Typ 1 hatte den Vorteil, dass er die Hardware vom Host an die VM weitergeben konnte. Hypervisor Typ 2 kann dies jetzt auch und daher gibt es meiner Meinung nach keinen wirklichen Unterschied mehr.

Alle Hypervisoren, die ich hier aufliste, laufen nur unter Linux. Windows hat zwar auch einen, aber der ist nicht quelloffen und die Linux-Hypervisoren sind die besten auf dem Markt.

Virtmanager
#

Virtmanager ist meiner Meinung nach die beste Wahl, wenn Sie viel mit VMs auf einem Desktop machen wollen. Es ist ein Typ 2, kann aber trotzdem Hardware an die VM übergeben und vieles mehr.

Virtmanager: https://virt-manager.org/

Qemu
#

Qemu ist praktisch, wenn Sie schnell eine VM starten und etwas testen wollen. Qemu hat viele Vorlagen, mit denen man VMs in Sekundenschnelle starten kann.

Qemu: https://www.qemu.org/

XEN
#

XEN ist ein alter Hypervisor, aber der sicherste auf dem Markt. Qubes OS und TrueNAS verwenden ihn, ebenso wie einige Autohersteller in ihren Fahrzeugen.

Allerdings ist er langsamer als moderne Hypervisoren. Aber wenn Sicherheit Ihre oberste Priorität ist, sollten Sie ihn verwenden.

XEN: https://xenproject.org/

Proxmox
#

Ich habe bereits über Proxmox geschrieben, es ist der beste Hypervisor, wenn Sie einen Cluster-Server benötigen.

Proxmox: https://www.proxmox.com/en/products/proxmox-virtual-environment/overview

Dienste von XenoElectronics
#

Wenn Sie Hilfe bei Ihren Projekten oder mit Open-Source-Software benötigen. Schauen Sie auf unsere Kontaktseite und teilen Sie uns Ihr Anliegen mit. Wir helfen Ihnen dabei, Ihre Projekte zu realisieren.

https://xenoelectronics.com/de/contact/

Unterstützen Sie uns
#

Ich hoffe, dieser Guide hat Ihnen sehr geholfen. Wir würden uns sehr freuen, wenn Sie unseren Patreon beitreten oder mit Paypal oder Stripe spenden würden. Wir sind für jede Unterstützung dankbar.

Vielen Dank fürs Lesen und für Ihre Zeit.

Unterstütze uns on Patreon.
Spende via Paypal.
Spende via Stripe.

Wenn Sie diesen Artikel teilen möchten, klicken Sie auf die Symbole unten.

Verwandte Artikel

Wie installiert man Navidrome?
·4 min
Guide Server Selfhost Music
Wollten Sie schon immer Ihren eigenen Musik-Streaming-Dienst haben? Dann ist dieser Guide genau das Richtige für Sie. Hier erklären wir, wie man Navidrome installiert und was man dabei beachten muss.
Der beste starter Guide für Browser-Sicherheit
·8 min
Guide Security Browser
Haben Sie sich schon immer gefragt, was einen Browser eigentlich sicher macht oder wie die Sicherheit eines Browsers eigentlich aussieht? Hier erfahren Sie das und auch, wie Sie sich schützen können.
Sie sollten lernen, wie man das Terminal in Linux benutzt
·4 min
Guide Linux Terminal
Wenn Sie Linux benutzen, kennen Sie das Gefühl. Das Terminal lauert in der Ecke und wartet auf den Moment, in dem Sie keine andere Wahl haben, als es zu benutzen. Aber keine Angst, das Terminal ist einfacher zu bedienen, als Sie denken.
Welche Passwort-Manager sollten verwendet werden?
·5 min
Guide Security
Passwort-Manager sind wichtiger denn je. Aber welchen genau sollten Sie verwenden? Dies und mehr wird hier erklärt.
Der ultimative Portainer Starter Guide
·5 min
Guide Portainer
Von der Installation von Portainer bis zu denn Konfigurationen.
Wie und warum Sie Ihre eigene Cloud hosten sollten
·7 min
Guide Cloud Selfhost
Möchten Sie erfahren, was die Cloud ist und welche Probleme sie mit sich bringt? Oder wie Sie selbst eine erstellen können? Oder wollen Sie einfach mehr Kontrolle über Ihre Daten haben? Dann sollten Sie diesen Guide lesen.