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.
Ab Anthos-Clustern auf Bare-Metal 1.7 können Sie von kubelet
direkt die Containerlaufzeitschnittstelle aufrufen lassen. 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.
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 Docker:
/etc/docker/certs.d/
- Für
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Für Docker:
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:
docker
containerd
Wenn das Feld leer ist oder nicht festgelegt ist, verwendet Anthos-Cluster on Bare Metal standardmäßig docker
.
Wenn Sie containerd
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: containerd
Containerlaufzeit beim Upgrade eines Clusters konfigurieren
Sie können Anthos-Cluster auf Bare-Metal so konfigurieren, dass beim Upgrade von einer der folgenden Versionen eine andere Containerlaufzeit verwendet wird:
- 1.6.0
- 1.6.1
- 1.6.2
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 containerd ä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:
docker
containerd
Wenn Sie containerd
verwenden möchten, ändern Sie Ihre Konfigurationsdatei entsprechend des folgenden Beispiels:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: containerd
Wenn Sie die Containerlaufzeit der Clusterknoten im Rahmen des Upgrades auf containerd
festlegen möchten, führen Sie den folgenden Befehl aus, um Ihre Cluster upzugraden:
bmctl upgrade cluster
Änderungen an der Steuerungsebene nach dem Upgrade
Während des Upgrades führt Anthos-Cluster auf Bare-Metal die folgenden Aufgaben auf Knoten der Steuerungsebene aus, um den Load-Balancer zu unterstützen, wenn die Laufzeit auf containerd
festgelegt wurde:
docker.*.service
-Dienste löschencontainer.*.service
-Dienste installieren- Neustart auf die systemd-Dienste
haproxy
undkeepalived
Bei Clustern, die die docker
-Laufzeit verwenden, werden nach dem Upgrade die vorhandenen systemd-Dienste haproxy
und keepalived
beibehalten.
Cluster mit Laufzeit containerd aktualisieren
Wenn Sie die Containerlaufzeit auf containerd
setzen, aktualisiert der folgende Befehl die Image-Registry-Zertifikate in /etc/containerd/certs.d/
.
bmctl update cluster
Cluster mit Laufzeit containerd zurücksetzen
Wenn Sie die Containerlaufzeit auf containerd
setzen, löscht der folgende Befehl keine Konfigurationen, binären Dateien 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/
Status der Laufzeit containerd prüfen
Führen Sie den folgenden Befehl aus, um den Status von containerd
als Teil der Systemdiagnose des Rechners zu prüfen:
systemctl status containerd