Informationen zur containerd-Containerlaufzeit

Google Distributed Cloud verwendet containerd als Containerlaufzeit auf allen Administrator- und Nutzerclusterknoten, einschließlich Windows-Knoten. Als Cloud Native Computing Foundation (CNCF) Containerlaufzeit bietet containerd integrierte Kubernetes-Unterstützung.

In Kubernetes 1.24 wurde Dockershim entfernt, die Komponente, mit der Kubernetes die Docker Engine als Containerlaufzeit verwenden konnte. In diesem Dokument finden Sie Knotenpools, die noch Docker Engine verwenden, und aktualisieren sie auf containerd.

Unterstützung für containerd in einem Administratorcluster

Google Distributed Cloud verwendet containerd für alle Administratorclusterknoten.

Unterstützung für containerd in einem Nutzercluster

Google Distributed Cloud unterstützt folgende Arten von Betriebssystem-Images für Nutzerclusterknoten:

Typ des Betriebssystem-ImagesContainerlaufzeit
ubuntu_cgv2containerd
cos_cgv2containerd
windowscontainerd

Einschränkungen und Empfehlungen

  • Ab Version 1.13.0 unterstützt Google Distributed Cloud den Betriebssystem-Image-Typ ubuntu nicht mehr. Alle Clusterknoten müssen die containerd-Laufzeit verwenden.

  • Sie können keinen Cluster auf 1.13 aktualisieren, der Docker Engine verwendet. Sie müssen Ihren Cluster aktualisieren, um die containerd-Laufzeit zu verwenden, bevor Sie ein Upgrade auf 1.13 durchführen.

  • Ab Version 1.12.0 können Sie keine neuen Cluster mehr erstellen, die den Betriebssystem-Image-Typ ubuntu verwenden. Das heißt, Sie können keine neuen Cluster mehr erstellen, die die Docker Engine-Containerlaufzeit verwenden.

Knotenpools mit Docker Engine angeben

Ubuntu

Listen Sie die Ubuntu-Knotenpools auf, die Docker Engine verwenden:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get onpremnodepools \
    -o json -A | jq -r '.items[] |select(.spec.osImageType == "ubuntu")|.metadata.name'

Ersetzen Sie USER_CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei des Nutzerclusters.

Beispielausgabe:

ubuntu-node-pool-1
ubuntu-node-pool-3

Windows

Alle Windows-Knotenpools in einem Nutzercluster verwenden dieselbe Containerlaufzeit. Die Laufzeit für Windows-Knoten wird durch den Wert von enableWindowsDataplaneV2 bestimmt, einem Feld in der Nutzercluster-Konfigurationsdatei.

Wenn enableWindowsDataplaneV2 den Wert true hat, verwenden alle Windows-Knoten im Nutzercluster containerd. Wenn der Wert false ist, verwenden alle Windows-Knoten Docker Engine.

Führen Sie den folgenden Befehl aus, um festzustellen, für welche Nutzercluster enableWindowsDataplaneV2 auf false festgelegt ist. Hier sehen Sie, welche Nutzercluster für die Verwendung von Docker Engine für Windows-Knoten konfiguriert sind.

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get onpremuserclusters \
    -A -o json | jq -r '.items[] |select(.spec.enableWindowsDataplaneV2 == false)|.metadata.name'

In der Ausgabe werden alle Nutzercluster aufgelistet, die für die Verwendung von Docker Engine für Windows-Knoten konfiguriert sind. Beispiele:

user-cluster-1

Unabhängig davon, ob ein Nutzercluster Windows-Knotenpools hat, wenn Sie für den Cluster enableWindowsDataplaneV2 auf false festgelegt haben, können Sie für den Cluster kein Upgrade auf Version 1.13 durchführen.

Linux-Knotenpools zur Verwendung von containerd aktualisieren

Legen Sie für jeden Knotenpool in der Konfigurationsdatei des Nutzerclusters den Wert osImageType osImageType auf ubuntu_cgv2 oder cos_cgv2 fest.

Beispiel:

nodePools
- name: "my-node-pool"
  osImageType: "ubuntu_cgv2"

Aktualisieren Sie den Nutzercluster:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Ersetzen Sie Folgendes:

  • ADMIN_CLUSTER_KUBECONFIG: der Pfad der kubeconfig-Datei des Administratorclusters

  • USER_CLUSTER_CONFIG: der Pfad Ihrer Nutzerclusterkonfigurationsdatei.

Windows-Knoten für die Verwendung von containerd aktualisieren

Legen Sie in der Konfigurationsdatei des Nutzerclusters enableWindowsDataplaneV2 auf true fest.

enableWindowsDataplaneV2: true

Aktualisieren Sie den Nutzercluster:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Der vorherige Befehl legt die Containerlaufzeit für alle Windows-Knoten im Cluster auf „containerd“ fest.