Containerd als Containerlaufzeit verwenden

Die Containerlaufzeit ist Software, die für die Verwaltung von Containern und Container-Images auf einem Kubernetes-Knoten zuständig ist. Containerd ist eine abgestufte Containerlaufzeit von CNCF (Cloud Native Cloud Foundation). Kubernetes wird nativ unterstützt und als ressourceneffizienter und sicherer als Docker Engine für Kubernetes betrachtet. Bis Kubernetes 1.20 war Docker Engine die primäre Containerlaufzeit. Dockershim, der Integrationscode von Docker Engine in Kubernetes, wurde in Kubernetes 1.20 eingestellt und in Kubernetes 1.24 entfernt. Daher sollten Nutzer von Anthos-Clustern auf VMware (GKE On-Prem) so bald wie möglich containerd als ihre Containerlaufzeit verwenden.

Unterstützung für containerd in Anthos-Cluster auf VMware-Administratorclusterknoten

In Anthos-Cluster auf VMware 1.8 verwendet der Administratorcluster containerd auf allen Knoten: den Admin-Master-Knoten, Admin-Add-On-Knoten und User-Master-Knoten. Dies gilt sowohl für neue Administratorcluster als auch für bestehende, von 1.7.x aktualisierte Administratorcluster.

Unterstützung für containerd in Anthos-Cluster auf VMware-Nutzercluster-Knoten

Für Anthos-Cluster auf VMware 1.8 wird ein neuer Betriebssystem-Image-Typ ubuntu_containerd eingeführt. Der Betriebssystem-Image-Typ ubuntu_containerd verwendet dasselbe Betriebssystem-Image wie ubuntu, aber der Knoten ist so konfiguriert, dass er als Containerlaufzeit anstelle von Docker Engine containerd verwendet.

In Version 1.8 wird der Betriebssystem-Image-Typ ubuntu_containerd standardmäßig für einen neuen Knotenpool verwendet, wenn osImageType nicht angegeben ist. Wenn Sie jedoch einen vorhandenen Knotenpool von Version 1.7.x aktualisieren, verwenden die Knotenpools nach dem Upgrade weiterhin Docker Engine.

Wenn Sie die Docker Engine für einen neuen Knotenpool weiterhin verwenden möchten, müssen Sie ab Version 1.8 ubuntu explizit als osImageType angeben. Da die Unterstützung für Docker Engine in Kubernetes 1.24 eingestellt wird, sollten Sie Ihre Knotenpools so konvertieren, dass sie den Image-Typ ubuntu_containerd des Betriebssystems verwenden.

Von einem Knotenpool verwendeten osImageType aktualisieren

Siehe OsImageType eines Knotenpools aktualisieren.

Migration von Docker Engine zu containerd

Diese Ressourcen bieten allgemeine Informationen zur Migration von Docker Engine zu containerd.

Knoten-Image-Typ prüfen

Sie können prüfen, welcher Image-Typ für vorhandene Knoten verwendet wird.

Zur Überprüfung mit kubectl:

kubectl get nodes -o wide --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Dabei gilt:

  • ADMIN_CLUSTER_KUBECONFIG ist der Pfad der kubeconfig-Datei für Ihren Administratorcluster.

Die Ausgabe sieht etwa so aus:

NAME ...  OS-IMAGE ...         CONTAINER-RUNTIME
node-1    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-2    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-3    Ubuntu 18.04.5 LTS   containerd://1.4.3

Die Spalte CONTAINER-RUNTIME gibt die Laufzeit und ihre Version aus.

Führen Sie zum Prüfen innerhalb des Knotens folgenden Befehl aus:

sudo crictl version

Die Ausgabe sieht etwa so aus:

Version:  0.1.0
RuntimeName:  containerd
RuntimeVersion:  1.4.3-0ubuntu0~18.04.1
RuntimeApiVersion:  v1alpha2