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-Images | Containerlaufzeit |
|---|---|
ubuntu_cgv2 | containerd |
cos_cgv2 | containerd |
windows | containerd |
Einschränkungen und Empfehlungen
Ab Version 1.13.0 unterstützt Google Distributed Cloud den Betriebssystem-Image-Typ
ubuntunicht 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
ubuntuverwenden. 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.