Kata Containers: Grundlagen, Funktionsweise und Einsatzgebiete
Kata Containers ist ein Projekt einer unabhängigen Open-Source-Community, die gemeinsam daran arbeitet, die Vorteile eines Containersystems mit denen einer einfachen virtuelle Maschinen zu kombinieren.
Wir erklären, wer hinter dem Projekt steckt und wie Kata Containers im Detail funktionieren. Außerdem informieren wir über Vor- und Nachteile sowie die beliebtesten Einsatzszenarios der sicheren Container-Laufzeit.
Was sind Kata Containers?
Das im Dezember 2017 ins Leben gerufene Projekt Kata Containers verfolgt das Ziel, eine möglichst leichtgewichtige virtuelle Maschine zu entwickeln, die im Look and Feel eines Containers funktioniert. Kata Containers sind demnach sehr einfach zu bedienen, hochgradig kompatibel, können eine sehr hohe Arbeitslast bewältigen und verfügen dennoch über einen hohen Sicherheitsstandard. Dafür setzt die Community von außen auf eine stärkere Isolierung und von innen auf eine Hardware-Virtualisierung als zweite Verteidigungslinie.
Das Kata-Containers-Projekt wird von der OpenStack Foundation (OSF) finanziert und verwaltet, die sich für die Entwicklung und Einführung einer offenen Infrastruktur für Cloud-Computing weltweit engagiert. Der Verhaltenskodex der OSF ist aus diesem Grund ein wichtiger Orientierungspunkt für die gemeinschaftliche Arbeit der Open-Source-Community. Der Code des Projekts wird auf GitHub gehostet – unter der Apache-2-Lizenz. Im Kata-Architekturausschuss sitzen u. a. wichtige große Unternehmen wie Google und Microsoft.
Eine ausführliche Vorstellung von Kata Containers hat die OpenStack Foundation in folgendem 30-minütigen Vortrag auf YouTube zur Verfügung gestellt:
Wie funktionieren Kata Containers?
Wie sehen Architektur und Funktionsweise von Kata Containers genau aus? Um diese Frage zu beantworten, muss man zum Start des Projekts zurückschauen: Im Dezember 2017 hat die Community erfolgreich die besten Teile von Intel Clear Containers (Intel-Projekt für sichere Linux-Container) mit Hyper runV (Hypervisor-basierte Laufzeit für Open-Container-Initiative-Projekte) zusammengeführt und skaliert. Oder kurz gesagt: Die Leistung von Intel trifft auf die Plattformunabhängigkeit von Hyper.
Einer der wichtigsten Punkte bei jedem Containersystem ist die Sicherheit. Da Container übereinandergestapelt bzw. geschichtet werden können, ist der Sicherheitsaspekt häufig nur schwer zu gewährleisten. Sowohl Intel als auch Hyper zielen deshalb – zwar auf unterschiedlichen Wegen, aber mit vergleichbaren Ergebnis – auf eine hohe Flexibilität in einer Container-Umgebung ab: Die einfache Schichtung von Containerformaten wie Kubernetes auf OpenStack oder umgekehrt ist ebenso möglich wie die komplexe Schichtung von Kubernetes auf OpenStack auf Kubernetes. Diese Flexibilität beim Aufbau der gewünschten Architektur vereinfacht die Nutzung von Kata Containers enorm, ohne dafür auf Sicherheit verzichten zu müssen.
Mit Kata können Sie sowohl eine VM-Isolierung auf Containerebene als auch eine Container-Isolierung durch Hardware-Virtualisierung realisieren. Im Fall von Kubernetes wird die VM-Isolierung dabei nicht auf Container-, sondern auf Podman- bzw. Pods-Ebene zur Verfügung gestellt, da man bei Kubernetes von Pods statt von Containern spricht. Im weiteren Verlauf wird zur Vereinfachung aber weiterhin von Containern gesprochen.
Einrichtung und Ausführung von Containersystemen können sehr komplex sein, da in der Regel viele Container auf verschiedenen Computer bereitgestellt werden müssen. Mit Managed Kubernetes von IONOS können Sie Ihre Container leichter planen, organisieren, bereitstellen und frei nach Bedarf skalieren!
Wie sieht die Architektur von Kata Containers aus?
Die Community verfolgt den Ansatz der maximalen Einfachheit und beweist dies auch in der Architektur von Kata Containers, die grundsätzlich folgende sechs Bestandteile vorsieht:
- Agent
- Laufzeit
- Proxy
- Shim (Kompatibiliätserweiterung für die jeweilige Anwendung)
- Kernel (Betriebssystemkern)
- Bündel mit QEMU 2.9 (freie Virtualisierungssoftware)
Diese Eigenschaften machen Kata unabhängig, hochgradig kompatibel und gleichzeitig sehr sicher. Die Architektur kann neben x86_64 auch AMD64, ARM sowie die IBM p-Serie und die IBM z-Serie unterstützen. Darüber hinaus erlaubt Kata Containers den Einsatz mehrerer Hypervisoren wie QEMU, NEMU und Firecracker. Auch eine Integration in das containerd-Projekt ist möglich.
Die Kompatibilität von Kata Containers
Kata 1.10 ist kompatibel zur Docker Community Edition, unterstützt aber auch alle anderen Industriestandards wie das OCI-Containerformat, Kubernetes CRI-Schnittstellen sowie einige ältere Virtualisierungstechnologien, u.a. CRI-O (1.10 commit 393429 respektive CRI-Containerd version 1.0.0) oder die OCI Runtime Specification (v1.0.0-rc5).
Zu den unterstützten Betriebssystemen, auf denen Kata Containers laufen, zählen:
Unterschied von Kata Containers zu herkömmlichen Containern
Der größte Vorteil von Kata Containers ist die Verbindung aus Einfachheit und Leistung. Eine Verschachtelung von Containern in vollwertige virtuelle Maschinen ist nicht mehr erforderlich, die Community hat hier auf Standardschnittstellen gesetzt, die den Einstieg und das Anschließen enorm erleichtern. Die Leistung bleibt so konsistent wie ein Standard-Linux-Container, hat aber dank der erhöhten Isolierung nicht die übliche Leistungssteuer einer virtuellen Standardmaschine. Die folgende Grafik veranschaulicht den vorteilhaften Aufbau.
Damit erreicht das Open-Source-Projekt schon jetzt das Ziel einer quelloffenen Container-Umgebung, deren Komponenten sich wie Container verhalten, aber die Leistung und Sicherheit von VMs bieten. So konnte Kata Containers bereits die alteingesessenen Bedenken gegenüber Containern, z. B. hinsichtlich der Skalierung, aushebeln.
Die Sicherheit von Kata Containers
Gewöhnliche Container sind leicht, schnell und lassen sich einfach integrieren. Im Gegenzug bergen sie Sicherheitsrisiken – insbesondere, wenn sie in einem Einzelbetriebssystem sind: Wenn sich die Container einen Kern, einen I/O-Pfad, dasselbe Netzwerk und denselben Speicher teilen, reicht es nämlich bereits aus, einen Container anzugreifen, um gleichzeitig alle anderen zu gefährden.
Bei Kata Containers verhält es sich gänzlich anders: Die virtuelle Maschine läuft in einem dedizierten Kernel (Betriebssystemkern), wodurch die Prozesse sowohl von Netzwerk und E/A, als auch vom Speicher getrennt werden. Zusätzlich zur ohnehin schon starken Isolierung kann eine durch Hardware verstärkte Isolierung mit Virtualisierungs-VT-Erweiterungen genutzt werden.
Kata Containers: Vor- und Nachteile im Überblick
Viele Punkte sprechen für das ambitionierte Open-Source Projekt von der OpenStack Foundation. Selbst Clear Linux (Intel) hat sich von seiner hauseigenen Container-Technologie verabschiedet und supportet bereits sehr erfolgreich Kata Containers. Die entscheidenden Gründe wurden oben bereits aufgeführt:
- hervorragende Kompatibilität
- einfache Bedienung
- hohe Leistungsfähigkeit
- hoher Sicherheitsstandard
Ein weiterer Vorteil ist der geringe Stromverbrauch, auch bei hoher Performance.
Kata ist jedoch keine Distribution für alle Zwecke. Es ist ein spezielles System mit teilweise prinzipbedingten Begrenzungen. Darunter fallen Operationen, die eine virtuelle Maschine nicht erlaubt, aber auch Einschränkungen, die in künftigen Updates behoben werden sollen. Eine genaue Aufzählung der Limitierungen liefert die Community in der offiziellen Dokumentation auf GitHub. Aktuell ist Kata Containers außerdem ausschließlich auf Linux-Distributionen nutzbar.
Ein weiterer, nicht ganz unerheblicher Nachteil: Kata steht noch ganz am Anfang. Die technische Grundlage ist dennoch vielversprechend und kommt bereits vielseitig zum Einsatz.
Wo kommen Kata Containers zum Einsatz?
Wie am Anfang erwähnt, hält sich die Community an den Verhaltenskodex der OSF. Darunter fällt auch eine offene Verwaltung des gesamten Projekts und insbesondere des Quellcodes. Diese Offenheit ist bestens durch die Verbindung der beiden integrierten und virtualisierten quelloffenen Code-Basen gegeben. Zu den vielen Supportern zählen u. a. Kubernetes, Docker, OCI, CRI, CNI, QEMU, KVM und OpenStack.
Clear Containers und runV, die technischen Grundlagen von Kata Containers, werden weltweit von großen Unternehmen genutzt, z. B. auch von JD.com, einem der umsatzstärksten Onlineshops in China.
Kata Containers funktionieren generell da am besten, wo Container gebraucht werden, die nicht nur auf einem einzelnen Kernel laufen sollen. Darunter fallen Anwendungsbereiche wie die kontinuierliche Integration (Continuous Integration) und Bereitstellung (Continuous Delivery), Edge-Computing, virtualisierte Netzwerkfunktionen sowie Container als Dienst (CaaS). Ferner ist Kata auch perfekt für Nischen-Implementierungen geeignet, denn so einfach, ressourcensparend, sicher und flexibel ist kein anderer Container.