Anthos-Cluster auf Bare-Metal fügen der Clusterkonfigurationsdatei das optionale Konfigurationsfeld containerRuntime
hinzu. Verwenden Sie dieses Feld, um die Containerlaufzeit zu konfigurieren, die die Clusterknoten zum Planen von Containern für Kubernetes-Pods verwenden.
Sie können kubelet
veranlassen, das Container Runtime Interface direkt aufzurufen. Mit dieser Option können Sie kubelet
von Docker entkoppeln, indem Sie die Notwendigkeit des Docker-Daemon entfernen.
Diese Änderung wird aufgrund der Zielsetzung für Kubernetes vorgenommen, die Verwendung des Docker-Daemons einzustellen und containerd als Standard festzulegen. Kubernetes plant, ab Kubernetes-Version 1.20 Warnungen zu senden und die Einstellung nach Version 1.24 abzuschließen. Diese Änderung entspricht der geplanten Änderung, containerd als Standard für GKE festzulegen.
In Anthos-Cluster on Bare Metal können Sie kubelet
für die Verwendung von Docker oder containerd
über das neue Feld containerRuntime
konfigurieren. Standardmäßig verwendet kubelet
containerd als Containerlaufzeit.
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
.