Containerlaufzeit ändern

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 von containerd.

  • 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/

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.