Wir haben das Containerd-Projekt von
Anfang an verfolgt . Daher können wir ein bedeutendes Ereignis nicht ignorieren: Gestern Abend gab die CNCF-Organisation hinter Kubernetes und anderen herausragenden Open Source-Lösungen für die Cloud-native Welt
bekannt , dass sie ihren "Absolventen" enthält. Dieses Projekt war bereits das fünfte mit diesem Status und schloss sich den Reihen der K8, Prometheus, Envoy und CoreDNS an.

CNCF-Kriterien
CNCF, die derzeit Dutzende von Open Source-Projekten unterstützt, hat drei Kategorien für ihre Klassifizierung übernommen:
- Sandbox ("Sandbox") - für die frühesten experimentellen, aber vielversprechenden Entwicklungen, die (in Zukunft) "den Wert der CNCF-Mission erhöhen", d. H. wird zur Entwicklung des Open Source-Ökosystems und der Community beitragen, die sich um die Infrastruktur für moderne native Cloud-Anwendungen bilden. Es gibt 12 solcher Projekte.
- Inkubation („Inkubator“) - für Projekte mit mindestens drei (dokumentierten und unabhängigen) Anwendern in der Produktion, in denen ausreichende (nach Angaben des Technischen Komitees) Qualitätsstufen und -skalen bereitgestellt werden sowie eine ausreichende Anzahl von Mitwirkenden mit Commit-Bit und stabile Entwicklung der Codebasis. Es gibt 15 von ihnen.
- Abschluss - für Projekte mit Auftraggebern von mindestens zwei Organisationen ein Ausweis zur Einhaltung der Best Practices von CII (Core Infrastructure Initiative), der vom CNCF-Verhaltenskodex verabschiedet wurde, ein klar definiertes Management- und Akzeptanzschema, eine öffentliche Liste der Benutzer und natürlich eine positive das Ergebnis der entsprechenden Abstimmung durch das technische Komitee der CNCF. Jetzt gibt es 5 von ihnen.

Kurz gesagt, die Bereitschaft des Projekts zur „Veröffentlichung“ bei CNCF wird als „schnell wachsende Anpassung, Originalität, formaler Managementprozess und striktes Engagement für eine nachhaltige und integrative Gemeinschaft“ formuliert. Der
Container , der vor fast zwei Jahren von Docker an CNCF übertragen wurde, erfüllt nun diese Kriterien.
Containerd: Herkunft und Gegenwart
Das Containerd-Projekt stammt aus der Zeit, als die Docker-
Bäume groß waren. Im Jahr 2015 gaben die Entwickler bekannt, dass es an der Zeit sei, die Docker Engine kompakter zu machen (schnell, zuverlässig, tragbar ...), und begannen daher
, ihre Komponenten in separate Projekte zu integrieren .
Alles
begann mit der Ankündigung des Start-Tools für Runc-Container (2015), dann erschien die Containerd-Laufzeit für Container (2016), und ein Jahr später wurde diese Initiative noch globaler und
brachte uns Moby .
Abbildung für die Veröffentlichung von Docker 1.11 (April 2016): Docker Engine und daraus entfernte KomponentenZurück zu Containerd. Kurz gesagt, seine funktionale Rolle wurde reduziert
(und dies hat sich bis heute nicht geändert) , da er als Daemon auf dem Hostsystem den gesamten Lebenszyklus des Containers verwaltete: vom Empfangen und Speichern des Images bis zum Starten des Containers (über den bereits erwähnten Runc) und seine Arbeit kontrollieren. Im März 2017, ein Jahr nach der Trennung des Containers,
übertrug Docker ihn an CNCF , was
gleichzeitig mit einer ähnlichen Initiative von CoreOS namens
rkt geschah (wir werden darauf zurückkommen) .
Weitere Entwicklungen sind die
Entstehung und Entwicklung (angeführt von Red Hat) eines Kubernetes-orientierten Konkurrenten namens CRI-O * ... und die Spiegelantwort von Docker Inc in Form eines
Cri-Containerd .
Ein spezieller (selbstbetitelter) Daemon wurde verwendet, um mit K8s in Cri-Containerd zu interagieren. Ab Version 1.1 wurde die Lösung zu einem Plug-In für die neue Container-Laufzeitumgebung von Kubernetes - Container Runtime Interface (CRI) - und hier kommunizierte das Plug-In direkt mit Containerd ( Aufruf der notwendigen Funktionen).

Im Juni 2018
wurde bekannt gegeben, dass das enthaltene CRI-Plugin produktionsbereit ist. Das aktuelle Projekt-Repository ist
includeerd / cri .
* Es ist interessant festzustellen, dass der im November 2018 eingereichte Antrag auf Aufnahme des Mitbewerbers Containerd und RKT - CRI-O - in CNCF-Projekte von der Organisation noch nicht genehmigt wurde.Containerd nennt sich heute indiskret "eine ausführbare Containerumgebung, die ein Industriestandard ist und sich auf Einfachheit, Zuverlässigkeit und Portabilität konzentriert":

Die tatsächliche Architektur von Containerlösungen mit Containerd
(zum größten Teil konzentrieren sie sich natürlich auf Kubernetes, aber formal sind sie nicht auf diese Plattform beschränkt) sieht sie wie folgt aus:

Die Lösung selbst
wird in Form eines Daemons für Linux (Kernel-Versionen 4.x werden
empfohlen , obwohl Optionen mit früheren Versionen möglich sind) und Windows geliefert. Der Quellcode ist in Go geschrieben (Version 1.9.x +
erforderlich ).
Die neueste Version von Containerd ist
1.2.4 (vom 14. Februar 2019) , in der die
Sicherheitsanfälligkeit CVE-2019-5736 in runc behoben wurde. Der nächste Meilenstein ist
Version 1.3 , in der Innovationen wie
Containergruppen ,
Leistungsoptimierung für den Pull-Betrieb von Bildern, verschiedene Verbesserungen bei der Arbeit mit Snapshotter und
andere erwartet werden.
Das Projekt hat mehr als 3500 Sterne auf GitHub, 14 Committer und 166 Mitwirkende von Unternehmen (außer Docker natürlich) wie
Alibaba , Facebook, Google,
Huawei , IBM, Microsoft, NTT und Tesla. Weitere Codebasisstatistiken finden Sie auf
DevStats .
Unter den
bemerkenswerten Containerd-
Benutzern genügt es, Moby selbst und verwandte Projekte (LinuxKit, BuildKit), Google Cloud Services (GKE), Microsoft (ACS-Engine in Azure und in Zukunft AKS), IBM (IKS, ICP) und Alibaba zu erwähnen. Containerlösungen / Motoren (Rio von Rancher, Kata Containers, Balena) sowie sogar der aktuelle
Firecracker .
Über Wettbewerber
Schließlich ist anzumerken, dass das Entwicklungstempo von rkt - einem Analogon von Containerd, das ungefähr zur gleichen Zeit in CNCF enthalten ist - erheblich geringer ist. Es reicht aus, darauf hinzuweisen, dass die letzte Veröffentlichung - v1.30.0 - vor fast einem Jahr (im April 2018) stattgefunden hat.
Aus geschäftlicher Sicht gibt es logische Schlussfolgerungen: Vor etwa einem Jahr wurde der ursprüngliche RKT-Entwickler CoreOS von Red Hat übernommen. Und letzteres
(oder es ist richtiger zu sagen, dass IBM bereits ...) hat , wie im Material erwähnt, eine eigene Idee - cri-o -, deren Aktivitäten
viel aktiver sind .
Obwohl der Linux-Riese es nicht geschafft hat, sein Projekt in CNCF zu „bringen“, klingen die Worte über Containerd als Industriestandard vielleicht sehr glaubwürdig.
PS
Lesen Sie auch in unserem Blog: