zurück zum Artikel

Container: Kubernetes beendet den Support für Docker

Silke Hahn

(Bild: Travel mania/Shutterstock.com)

Die Entscheidung stand schon länger im Raum – seit drei Jahren steht fest, dass Kubernetes den Docker-Daemon nicht mehr unterstützen will. Jetzt tritt es ein.

Ab Kubernetes 1.20, dessen Release am 8. Dezember unmittelbar bevorsteht, erhalten Entwickler eine Deprecation-Warnung für Docker. Docker gilt dann als veraltet (deprecated) und Kubernetes stellt damit offiziell den Support für den Docker-Tech-Stack ein, wie man den Release Notes auf GitHub bereits entnehmen kann.

Aus heiterem Himmel kommt die Nachricht nicht: Das Kubernetes-Entwicklerteam hatte diesen Schritt bereits seit 3 Jahren geplant und vorbereitet, sodass es letztlich nur eine Frage der Zeit war. Da Kubernetes ursprünglich zum Orchestrieren von Docker-Containern entwickelt worden ist, dürfte die Neuigkeit manchen Kubernetes-Nutzer dennoch irritieren.

Hintergrund ist offenbar die Aufsplittung des Docker-Ökosystems in zahlreiche Unterprojekte mit kleinteiligen Komponenten, die eine differenzierte Entwicklung durchlaufen. Den Docker-Daemon empfand die Kubernetes-Community als zunehmend aufgebläht, wie Entwicklerin Kat Cosgrove bei Twitter auf den Punkt bringt [1]: "Kubernetes braucht diesen ganzen schicken UX-Kram nicht."

Tweet von Kat Cosgrove @Dixie3Flatline über die Einstellung des Docker-Supports bei Kubernetes

Entwicklerin Kat Cosgrove erklärt die Hintergründe der Einstellung des Docker-Supports bei Kubernetes.

(Bild: Twitter)

Cosgrove differenziert zwischen der Runtime von Docker und Docker als Gesamtpaket, in ihrem mehrteiligen Tweet erläutert sie die Motivation der Entscheidung und beschreibt, welche Auswirkungen die Deprecation auf Cloud-Entwickler hat. Für Kubernetes am wichtigsten sei die Container-Runtime, und hier existiert bereits seit 2018 die alternative High-Level-Runtime Containerd. Da Docker inkompatibel zum Container Runtime Interface (CRI) ist, war stets die Zwischenschicht Dockershim [2] nötig – Containerd empfiehlt sich aber als technisch bessere Lösung.

Mit der neuen Entwicklung ist laut Cosgrove Docker zwar nicht tot, es funktioniert lediglich nicht mehr als Laufzeitumgebung in Kubernetes. Entwickler müssen mit der nächsten Version zu Containerd wechseln [3]. Einige größere Projekte wie Red Hat und Suse verzichten bereits seit geraumer Zeit auf Docker und setzen auf Alternativen wie CRI-O [4]. Für Kubernetes-Anwender dürfte die Neuerung eine Arbeitserleichterung bedeuten, da künftig schlicht die standardisierte Schnittstelle CRI zur Kommunikation mit der Container-Runtime zum Einsatz kommt. CRI-O und Containerd unterstützen diese Schnittstelle.

Der Deprecation-Hinweis ist auf GitHub in den Release Notes dokumentiert [5]. Mehr Informationen zu den Laufzeitumgebungen für Container lassen sich der Kubernetes-Dokumentation entnehmen [6].

Mehr zum Thema

Mehr Informationen rund um Kubernetes, Container und Cloud-native Betriebsmodelle bieten die Konferenzen Continuous Lifecycle und Container Conf mit den Special Days Container Deep Dive [7], Kubernetes Experts Day [8] und Cloud Native Day [9].

(sih [10])


URL dieses Artikels:
https://www.heise.de/-4978841

Links in diesem Artikel:
[1] https://twitter.com/Dixie3Flatline/status/1334188913724850177
[2] https://kubernetes.io/blog/2020/12/02/dockershim-faq/
[3] https://www.heise.de/meldung/containerd-ist-das-fuenfte-Projekt-mit-Graduiertenstatus-in-der-CNCF-4323678.html
[4] https://www.heise.de/meldung/Container-CRI-O-1-18-ueberarbeitet-die-Protokollierung-4710946.html
[5] https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation
[6] https://kubernetes.io/docs/setup/production-environment/container-runtimes/
[7] https://www.containerconf.de/container.php
[8] https://www.containerconf.de/kubernetes_2.php
[9] https://www.containerconf.de/cloud_native.php
[10] mailto:sih@ix.de