Ihre Cluster verwenden eine Containerlaufzeit, um Kubernetes-Pods zu erstellen und auszuführen. Vor Version 1.13 von Anthos-Clustern auf Bare-Metal-Servern kann die Containerlaufzeit entweder Docker Engine
oder containerd
sein. Die Containerlaufzeit kann jedoch erst ab containerd
Version 1.13 von Anthos-Clustern auf Bare-Metal-Geräten betragen.
Wenn Ihre Cluster Docker Engine
als Containerlaufzeit verwenden, sollten Sie diese Containerlaufzeit in containerd
ändern. Auf dieser Seite wird erläutert, wie Sie die Containerlaufzeit auf containerd
festlegen.
Sie geben die Containerlaufzeit an, indem Sie den Wert des Felds containerRuntime
in der Clusterkonfigurationsdatei festlegen. Es reicht jedoch nicht aus, nur den Wert dieses Felds festzulegen oder zu ändern. Sie müssen dann einen neuen Cluster erstellen oder einen vorhandenen Cluster aktualisieren, damit die Änderung wirksam wird. Sie können die Containerlaufzeit also nur ändern, wenn Sie einen neuen Cluster erstellen oder ein vorhandenes Cluster aktualisieren.
Mit Kubernetes 1.24 endet die Unterstützung von Docker Engine
Die Komponente dockershim
in Kubernetes ermöglicht Clusterknoten die Verwendung der Docker Engine-Containerlaufzeit. In Kubernetes 1.24 wurde die Komponente dockershim
jedoch entfernt. Da Anthos on Bare Metal-Version 1.13 auf Kubernetes 1.24 ausgeführt wird, können Cluster mit Version 1.13 und höher die Docker Engine nicht mehr als Containerlaufzeit verwenden.
Beachten Sie beim Upgrade oder Erstellen von Clustern folgende Containerlaufzeitregeln:
- Sie müssen
containerd
für Cluster ab Version 1.13 verwenden. - Es ist nicht zulässig, Cluster der Version 1.12 zu erstellen, die die Docker Engine-Containerlaufzeit verwenden.
- Sie können ein Upgrade eines 1.11-Clusters mit Docker Engine auf einen 1.12-Cluster durchführen, der Docker Engine verwendet. Wir empfehlen jedoch dringend, vor dem Upgrade auf
containerd
zu wechseln.
Die Docker-Installation, die Sie bei der Entwicklung zum Erstellen von Images verwenden, steht nicht im Zusammenhang mit der Docker Engine-Containerlaufzeit in Ihrem Kubernetes-Cluster. Sie können Docker weiterhin zum Erstellen von Images und Anwendungscontainern verwenden. Diese Container funktionieren weiterhin in Ihrem Cluster.
Sie müssen Docker weiterhin auf Ihrer Admin-Workstation installieren, da der Befehl bmctl
Docker für Vorgänge wie das Erstellen von Clustern erfordert.
Diese Verwendung von Docker ist auch nicht von der Einstellung von dockershim
betroffen.
Eine ausführliche Anleitung zum Ändern der Containerlaufzeit von docker
zu containerd
finden Sie in den folgenden Abschnitten.
Hinweis
Denken Sie daran, dass Sie beim Upgrade eines Clusters zuerst den Administratorcluster und vorher auch die Nutzercluster aktualisieren müssen.
Achten Sie darauf, dass Ihre Bereitstellung
containerd
-Version 1.4.3 oder höher unterstützt. Anthos-Cluster auf Bare-Metal installiert diese Version über jede zuvor installierte Version voncontainerd
.Achten Sie darauf, dass Anthos-Cluster auf Bare Metal die folgenden Dateien installieren können:
Binärdateien
/usr/bin/containerd
/usr/bin/containerd-shim
/usr/bin/containerd-shim-runc-v1
/usr/bin/containerd-shim-runc-v2
/usr/bin/crictl
/usr/bin/ctr
/usr/local/sbin/runc
Konfigurationsdateien
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/containerd/config.toml
/etc/containerd/certs.d/
/etc/systemd/system/containerd.service.d/09-proxy.conf
Diese Datei wird nur installiert, wenn Sie einen HTTP-Proxy konfigurieren.
Achten Sie darauf, dass Anthos-Cluster auf Bare Metal das folgende Zertifikat auf Ihren Knoten installieren können:
/etc/containerd/certs.d/
containerd
als Containerlaufzeit für einen neuen Cluster festlegen
Wenn der Abschnitt spec.nodeConfig
Ihrer Clusterkonfigurationsdatei leer oder nicht festgelegt ist, wird die Containerlaufzeit des Clusters beim Erstellen eines neuen Clusters automatisch auf containerd
festgelegt.
Wenn Sie jedoch containerd
explizit als Containerlaufzeit für einen neuen Cluster festlegen möchten, legen Sie das Feld „containerRuntime“ im Abschnitt spec.nodeConfig
der Clusterkonfigurationsdatei auf containerd
fest. Danach sollte die Clusterkonfiguration in etwa so aussehen:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: containerd
Wenn Sie diese Clusterkonfigurationsdatei zum Erstellen eines neuen Clusters verwenden, ist die Containerlaufzeit containerd
.
Containerlaufzeit beim Upgrade eines Clusters von docker
in containerd
ändern
Führen Sie die folgenden Schritte aus, um beim Upgrade eines Clusters die Containerlaufzeit von docker
in containerd
zu ändern:
Ändern Sie das Feld „containerRuntime“ im Abschnitt
spec.nodeConfig
der Clusterkonfigurationsdatei vondocker
incontainerd
. Danach sollte die Clusterkonfiguration in etwa so aussehen:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: cluster1 namespace: cluster-cluster1 spec: nodeConfig: containerRuntime: containerd
Führen Sie den folgenden Befehl aus, um das Upgrade für Ihren Cluster durchzuführen:
bmctl upgrade cluster -c CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
Dabei gilt:
- CLUSTER_NAME durch den Namen des Clusters, den Sie aktualisieren möchten.
- ADMIN_KUBECONFIG durch den Pfad der SavedModel-Datei des Administratorclusters.
Status der Containerlaufzeit prüfen
Führen Sie den folgenden Befehl aus, um den Status der Containerlaufzeit zu prüfen:
systemctl status containerd
Containerlaufzeit beim Upgrade eines Clusters von containerd
in docker
ändern
Sie können beide Containerlaufzeiten verwenden, wenn Sie ein Upgrade von Anthos-Clustern auf Bare-Metal-Version 1.11 auf 1.12 durchführen. Wir empfehlen jedoch dringend, containerd
zu verwenden, da die Containerlaufzeit Docker Engine
ab Version 1.13.0 nicht unterstützt wird.