Auf dieser Seite wird erläutert, wie Sie angeben, welche Containerlaufzeit Ihr Cluster zum Ausführen von Kubernetes-Pods verwendet. Zum Angeben der Containerlaufzeit an legen Sie den Wert des Felds containerRuntime
in der Clusterkonfigurationsdatei fest.
Sie können den Wert des Felds containerRuntime
nur ändern, wenn Sie einen Cluster aktualisieren oder installieren. Dieses Feld ist optional und wird standardmäßig auf containerd
gesetzt, wenn Sie es nicht definieren.
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 die Version 1.13 von Anthos-Cluster auf Bare Metal in Kubernetes 1.24 ausgeführt wird, können Versionen ab 1.13 nicht mehr Docker Engine nutzen.
Beachten Sie beim Upgrade oder Erstellen von Clustern folgende Containerlaufzeitregeln:
- Sie müssen
containerd
für Cluster ab Version 1.13 verwenden. Sie können keinen Cluster der Version 1.12 aktualisieren, der Docker auf Version 1.13 verwendet. - Es ist nicht zulässig, Cluster der Version 1.12 zu erstellen, die die Docker Engine-Containerlaufzeit verwenden.
- Sie können ein 1.11-Cluster, der Docker verwendet, auf einen 1.12-Cluster aktualisieren, der Docker verwendet. Es wird jedoch dringend empfohlen, vor dem Upgrade zu „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.
Docker muss auf Ihrer Administrator-Workstation installiert sein.
Der Befehl bmctl
erfordert Docker für Vorgänge wie die Clustererstellung.
Diese Verwendung von Docker ist auch nicht von der Einstellung von dockershim
betroffen.
Eine ausführliche Anleitung zur Angabe der Containerlaufzeit in Ihrem Cluster finden Sie in den folgenden Abschnitten.
Hinweis
Bestimmen Sie, welche Containerlaufzeit Ihre Cluster verwenden sollen. Sie können den Wert des Felds für die Containerlaufzeit nur ändern, wenn Sie einen Cluster upgraden oder installieren.
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
.Stellen Sie sicher, dass Anthos-Cluster auf Bare-Metal die folgenden Dateien installieren kann, die für beide Laufzeiten installiert sind:
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.
Sorgen Sie dafür, dass Anthos-Cluster auf Bare-Metal je nach gewählter Laufzeit die folgenden Zertifikate auf Ihren Knoten installieren kann:
- Für
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Für Docker:
/etc/docker/certs.d/
- Für
Containerlaufzeit für einen neuen Cluster konfigurieren
Um die Containerlaufzeit für einen neuen Cluster anzugeben, legen Sie das Feld containerRuntime
im Abschnitt nodeConfig
in der Clusterkonfigurationsdatei unter spec
fest. Anthos-Cluster auf Bare-Metal unterstützen die folgenden Werte:
containerd
docker
Wenn das Feld leer ist oder nicht festgelegt ist, verwendet Anthos-Cluster on Bare Metal standardmäßig containerd
.
Wenn Sie Docker verwenden möchten, sollte der Eintrag in Ihrer Konfiguration in etwa so aussehen wie in folgendem Beispiel:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Containerlaufzeit beim Upgrade eines Clusters konfigurieren
Sie können Anthos-Cluster on Bare Metal so konfigurieren, dass beim Upgrade eine andere Containerlaufzeit verwendet wird. Sie können den Wert des Felds für die Containerlaufzeit nur ändern, wenn Sie einen Cluster upgraden oder installieren.
Voraussetzungen
- Administratorcluster vor Nutzerclustern aktualisieren
- Legen Sie den Wert des Felds
containerRuntime
in Ihrer Konfigurationsdatei fest, bevor Sie Ihre Cluster upgraden.
Laufzeit in Docker ändern
Um die Containerlaufzeit während eines Upgrades festzulegen, legen Sie das Feld containerRuntime
im Abschnitt nodeConfig
unter spec
in der Cluster-Konfigurationsdatei fest. Anthos-Cluster auf Bare-Metal unterstützen die folgenden Werte:
containerd
docker
Wenn Sie Docker verwenden möchten, ändern Sie Ihre Konfigurationsdatei entsprechend dem folgenden Beispiel:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Wenn Sie die Containerlaufzeit der Clusterknoten im Rahmen des Upgrades auf docker
festlegen möchten, führen Sie den folgenden Befehl aus, um Ihre Cluster upzugraden:
bmctl upgrade cluster
Cluster mit Laufzeit Docker aktualisieren
Wenn Sie die Containerlaufzeit auf docker
setzen, aktualisiert der folgende Befehl die Image-Registry-Zertifikate in /etc/containerd/certs.d/
.
bmctl update cluster
Cluster zurücksetzen, die containerd als Laufzeit verwenden
Wenn Sie die Standard-Containerlaufzeit verwenden, löscht der folgende Befehl keine Konfigurationen, Binärdateien oder Verzeichnisse:
bmctl reset cluster
Während des Zurücksetzens wird der containerd
-Dienst weiterhin ausgeführt, aber die von Kubernetes geplanten Container werden angehalten und aus der containerd-Laufzeit entfernt.
Löschen Sie die folgenden Binärdateien und Verzeichnisse, um das Zurücksetzen abzuschließen:
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/systemd/system/containerd.service.d/
/etc/containerd/config.toml
/etc/containerd/certs.d/
Wenn Sie Docker als Laufzeit verwenden, wird während des Zurücksetzens keine Bereinigung ausgeführt.
Status der Laufzeit prüfen
Führen Sie den folgenden Befehl aus, um den Status der Laufzeit als Teil der Systemdiagnose des Rechners zu prüfen:
systemctl status RUNTIME
Ersetzen Sie RUNTIME
durch die ausgewählte Laufzeit: containerd
oder docker
.