Kubernetes Containerd Integration erreicht Produktionsreife

Auf Basis einer vereinfachten Plugin-Architektur liegt nun das GA-Release der Kubernetes Containerd Integration vor. Auch bei der Performance haben die Entwickler nachgebessert.

In Pocket speichern vorlesen Druckansicht
CloudNativeCon+ KubeCon: Alle lieben Kubernetes
Lesezeit: 2 Min.
Von
  • Matthias Parbel

Gut ein halbes Jahr nach dem Start der Alpha-Version der Kubernetes Containerd Integration kündigen Lantao Liu (Google) und Mike Brown (IBM) im Kubernetes-Blog nun die generelle Verfügbarkeit einer produktionsreifen Version an. Anwender und Entwickler dürfen Containerd 1.1 damit offiziell als Container Runtime in Kubernetes Clustern auch jenseits von Testszenarien einsetzen.

Mit der Veröffentlichung von Containerd 1.1 vereinfacht sich der zugrundeliegende Architektur-Stack gegenüber der ursprünglichen Dockershim-Implementierung nochmals. Der bisher für die Zusammenarbeit von Kubelet und Containerd erforderliche zweite eigenständige Daemon, cri-containerd (Container Runtime Interface), arbeitet nun als integriertes Plugin von Containerd 1.1. Das CRI-Plugin verarbeitet weiterhin die Service Requests von Kubelet, interagiert mit Containerd aber über direkte Funktionsaufrufe. Die Kommunikation zweier Daemons über Remote Procedure Calls (via gRPC) entfällt.

Aus dem eigenständigen CRI-Daemon wird ein integriertes Plugin.

(Bild: Kubernetes)

Der neue Architekturansatz führt auch zu einer Verbesserung der Performance, die sich anhand des Kubernetes Node Performance Benchmark nachvollziehen lässt. Im Vergleich der Containerd 1.1 Integration mit der Docker 18.03 Community Edition (Dockershim) sinken sowohl die Latenz der Pod-Startup-Zeiten, wie auch CPU- und Memory-Auslastung.

Die vielen Docker-Anwendern vertraute Docker Engine wird mit Erscheinen von Containerd 1.1 keineswegs überflüssig. Das nächste Release der Docker CE wird Containerd 1.1 samt standardmäßig aktiviertem CRI Plugin enthalten. Damit die Docker Engine problemfrei für von Kubernetes unabhängige Zwecke weiterverwendet werden kann, stellt ein Namespace-Mechanismus die strikte Trennung der mit Kubelet und Docker Engine erstellten Container sowie Images sicher.

Docker Engine kann für Einsatzzwecke jenseits von Kubernetes weiter genutzt werden.

(Bild: Kubernetes)

Docker hatte Containerd im vergangenen Jahr an die Cloud Native Computing Foundation übergeben, die sich bereits um eng verknüpfte Projekte wie Kubernetes, Prometheus und gRPC kümmert. Containerd 1.1 arbeitet mit allen Kubernetes-Versionen ab 1.10 und unterstützt sämtliche Kubernetes-Funktionen. Einen kompletten Überblick aller Neuerungen liefert der Blog-Beitrag, eine Liste sämtlicher Änderungen findet sich auf GitHub. (map)