We couldn't find a match for given <KEYWORD>, please try again.

Was ist Container-Networking?

Container-Networking ist ein neuer Mechanismus für Anwendungs-Sandboxing, der für Desktops im Homeoffice sowie webkonforme Enterprise Networking-Lösungen eingesetzt wird. Das Konzept ist dem einer virtuellen Maschine vergleichbar. Innerhalb des Containers ist eine Linux-Umgebung mit vollem Funktionsumfang und eigenen Anwendern, Dateisystemen, Prozessen und Netzwerkstack vom Host und allen anderen Containern isoliert. Alle Anwendungen im Container können nur auf Dateien oder Ressourcen des Containers zugreifen oder diese ändern.

Mehrere Container mit jeweils eigenen Installationen und Abhängigkeiten können gleichzeitig ausgeführt werden. Dies ist besonders nützlich, wenn neuere Versionen einer Anwendung ein Upgrade einer Abhängigkeit erfordern, das zu Konflikten mit anderen auf dem Server ausgeführten Anwendungsabhängigkeiten führen kann. Im Gegensatz zu virtuellen Maschinen teilen sich Container Host-Ressourcen, anstatt die gesamte Hardware auf dem Computer vollständig zu simulieren. Dadurch sind Container kleiner und schneller als virtuelle Maschinen und der Overhead reduziert sich. Insbesondere im Kontext von webkonformen Anwendungen sollten Container VMs als Bereitstellungsplattform für Microservice-Architekturen ersetzen.

Container zeichnen sich auch durch Portabilität aus. Mit Docker, einer Container-Engine, können Entwickler beispielsweise einen Container und alle seine Abhängigkeiten in einem Paket bündeln. Dieses Container-Paket kann dann zum Herunterladen zur Verfügung gestellt werden. Nach dem Herunterladen kann der Container sofort auf einem Host ausgeführt werden.

Datenblatt zu VMware Container Networking with Antrea

Ankündigung von VMware Container Networking with Antrea für Kubernetes

Funktionsweise von Container-Networking

Ein Container-Netzwerk ist eine Form der Virtualisierung, die dem Konzept virtueller Maschinen (VMs) ähnelt, sich von diesen aber auch deutlich unterscheidet. In erster Linie ist die Container-Methode eine Form der Betriebssystemvirtualisierung, während VMs eine Form der Hardwarevirtualisierung sind.

Jede virtuelle Maschine, die auf einem Hypervisor ausgeführt wird, verfügt über ein eigenes Betriebssystem, eigene Anwendungen und Bibliotheken und kann persistente Daten kapseln, ein neues Betriebssystem installieren, ein anderes Dateisystem als der Host oder eine andere Kernel-Version verwenden.

Umgekehrt sind Container eine „aktive Instanz“ eines Images, eine kurzlebige Betriebssystemvirtualisierung, die zur Ausführung bestimmter Aufgaben gestartet wird und dann wieder gelöscht und vergessen wird. Aufgrund der Kurzlebigkeit von Containern führen Systemanwender viel mehr Instanzen von Containern aus als virtuelle Maschinen, die einen größeren Adressbereich benötigen.

Ein Container benötigt zwei Linux-Kernel-Funktionen, um Isolation zu gewährleisten: Namespace und Cgroups (Kontrollgruppen). Um dem Container eine eigene Systemansicht zu geben und ihn von anderen Ressourcen zu isolieren, wird für jede Ressource ein Namespace erstellt, der nicht für das verbleibende System freigegeben wird. Dann werden Kontrollgruppen verwendet, um Systemressourcen wie CPU, Arbeitsspeicher, Datenträger-E/A, Netzwerk usw. zu überwachen und zu begrenzen.

Vorteile von Container-Networking

Container verbreiten sich zunehmend und ersetzen VMs als Plattform für Microservices.

Container bieten mehrere wichtige Vorteile:

  • Ausführung von Container-Anwendungen zusammen mit vorhandenen Workloads: Maschinen können Container-Anwendungen neben herkömmlichen VMs in derselben Infrastruktur ausführen, was Flexibilität und Geschwindigkeit gewährleistet.
  • Kombination von Portabilität mit Sicherheit, Transparenz und Management: Container sind so konzipiert, dass sie Sandboxing, transparente Hostressourcen, Aufgabenmanagement und eine portable Ausführungsumgebung unterstützen, und bieten dadurch mehr Sicherheit.
  • Nutzung der vorhandenen Infrastruktur und einfache Skalierung: Verwenden Sie Ihr vorhandenes SDDC, um eine kostspielige und zeitaufwendige Umstrukturierung Ihrer Infrastruktur zu vermeiden, die zu Silos führt. Silos entstehen, wenn verschiedene Abteilungen innerhalb eines Unternehmens an einer eigenen IT-Infrastruktur festhalten. Dieser „Siloeffekt“ führt aufgrund der unterschiedlichen technischen Konfigurationen in den einzelnen Abteilungen zu Problemen bei der Umsetzung unternehmensweiter IT-Richtlinien und Upgrades. Die Wiedereingliederung von Silos ist ein kostspieliger und zeitaufwendiger Prozess, der durch Container-Networking vermieden werden kann.
  • Bereitstellung einer Docker-kompatiblen Schnittstelle für Entwickler: Entwickler, die mit Docker bereits vertraut sind, können Anwendungen in Containern über eine Docker-kompatible Schnittstelle entwickeln und anschließend über das Selfservice-Managementportal oder die UI bereitstellen.

Verwendung von Container-Networking in webkonformen Anwendungsbereitstellungen

Container werden als Teil der Microservices-Architektur in Unternehmensumgebungen bereitgestellt, um einzelne Aufgaben zu kapseln, die für große Webanwendungen üblich sind. Jede Aufgabe kann ihren eigenen Container haben, die nach außen ausgerichteten Container wie APIs und GUIs werden für das öffentliche Internet geöffnet, die anderen befinden sich im privaten Netzwerk.

Vorteile des Microservices-Modells:

  • Einfache Bereitstellung: Hostkonfigurationen können in Container eingebettet werden, sodass sie nach der Bereitstellung sofort einsatzbereit sind.
  • Kurzlebig: Container sind für eine schnelle In- und Außerbetriebnahme konzipiert. Wenn der Host ausfällt, schalten Sie Anwendungen genauso einfach wieder online, wie Sie einen Ersatzserver aktivieren.
  • Fehlertolerant: Container stellen einfache Redundanz für Datenbanken und Webserver bereit. Durch das Kopieren desselben Containers auf mehrere Knoten werden Hochverfügbarkeit und Fehlertoleranz gewährleistet.

Typen des Container-Networking

Heute werden fünf Typen des Container-Networking eingesetzt. Sie unterscheiden sich vor allem darin, ob die IP pro Container oder pro Pod zugewiesen wird und ob eine Netzwerkadressübersetzung (Network Address Translation, NAT) erforderlich ist oder nicht.

  • Kein Networking: Der Container empfängt einen Netzwerkstack. Es fehlt jedoch eine externe Verbindung. Dieser Modus ist nützlich, um Container zu testen, einen Container für eine spätere Netzwerkverbindung bereitzustellen und Container zuzuweisen, die keine externe Kommunikation erfordern.
  • Bridge: Container, die in einem internen Hostnetzwerk über eine Bridge verbunden werden und mit anderen Containern auf demselben Host kommunizieren dürfen. Von außerhalb des Hosts kann nicht auf Container zugegriffen werden. Das Bridge-Netzwerk ist der Standard für Docker-Container.
  • Host: Bei dieser Konfiguration wird der Netzwerk-Namespace des Hosts mit dem Container geteilt, sodass der Container auf alle Netzwerkschnittstellen des Hosts zugreifen kann. Dieser Typ weist unter den Konfigurationen für externes Networking die geringste Komplexität auf und ist aufgrund der gemeinsamen Nutzung der Networking-Schnittstellen anfällig für Portkonflikte.
  • Underlay: Underlays öffnen die Hostschnittstellen direkt für Container, die auf dem Host ausgeführt werden. Portzuordnungen sind daher nicht mehr erforderlich, sodass dieser Typ des Container-Networking effizienter als der Bridge-Typ ist.
  • Overlay: Overlays kommunizieren hostübergreifend über Networking-Tunnel, sodass sich Container so verhalten, als befänden sie sich auf derselben Maschine, obwohl sie auf verschiedenen Hosts gehostet werden.

Zugehörige Lösungen und Produkte

Antrea

Signierte Images und Binärdateien mit vollständigem Enterprise-Support für Project Antrea

Vernetzen von Containern und Kubernetes

Vernetzen und schützen Sie Ihre Container-Anwendungen und Microservices.

Virtual Cloud Network

Nutzen Sie die Public Cloud über das Virtual Cloud Network in Ihrem Rechenzentrum.