Arm-basierte Container-Optimized OS-Images verwenden

Ab Meilenstein 101 veröffentlicht Container-Optimized OS Arm-basierte Betriebssystem-Images. Mit den Images können Tau-T2A-VMs in der Compute Engine erstellt werden. Weitere Informationen dazu, welche Arbeitslasten gut mit Tau T2A funktionieren, finden Sie unter Arbeitslastempfehlungen. Informationen zum Ausführen von Arm-Arbeitslasten in der Google Kubernetes Engine (GKE) finden Sie unter Arm-Arbeitslasten in GKE.

ARM-basierte Images ansehen

Arm-basierte Container-Optimized OS-Images werden im Projekt cos-cloud mit dem Präfix cos-arm64 gehostet. Mit dem folgenden Befehl können Sie sich auch alle derzeit verfügbaren Releases in der Befehlszeile anzeigen lassen:

gcloud compute images list --project cos-cloud --no-standard-images  --filter="name~'cos-arm64-*'"

Die Ausgabe sieht in etwa so aus:

NAME                             PROJECT    FAMILY             DEPRECATED  STATUS
cos-arm64-101-17162-40-5         cos-cloud  cos-arm64-101-lts              READY
cos-arm64-beta-101-17162-40-5    cos-cloud  cos-arm64-beta                 READY
cos-arm64-dev-105-17228-0-0      cos-cloud  cos-arm64-dev                  READY
cos-arm64-stable-101-17162-40-5  cos-cloud  cos-arm64-stable               READY

Arm-basierte Container-Optimized OS-Images haben dasselbe Versionsschema und denselben LTS-Meilenstein-Lebenszyklus wie x86-basierte Images. Für Arm-basierte Container-Optimized OS-Images gibt es ähnliche Image-Familien: cos-arm64-dev, cos-arm64-beta, cos-arm64-stable und cos-arm64-[MILESTONE]-lts.

Unterschiede zwischen Arm- und x86-Images

Die Arm-basierten und x86-basierten Container-Optimized OS-Images haben denselben Quellcode, aber die Build- und Kompilierungskonfigurationen unterscheiden sich. Das bedeutet, dass ein Arm-basiertes Container-Optimized OS-Image möglicherweise nicht funktional mit einem x86-basierten Container-Optimized OS-Image identisch ist, auch wenn sie dieselbe Version haben.

In den folgenden Abschnitten werden die Unterschiede zwischen Arm-basierten und x86-basierten Container-Optimized OS-Images beschrieben.

Kernel

Arm-basierte Container-Optimized OS-Images haben eine separate Kernelkonfiguration, die sich von der von x86-basierten Images unterscheidet. Der auffälligste Unterschied besteht darin, dass Arm-basierte Images die NVMe-Schnittstelle für den Speicher anstelle der SCSI-Schnittstelle und Google Virtual NIC (gVNIC) für das Netzwerk anstelle von Virtio-net verwenden. Die Funktion Container Threat Detection funktioniert auch nicht auf Arm-basierten Images.

Cloud Logging-Agent

Arm-basierte Container-Optimized OS-Images verwenden fluent-bit als Cloud Logging-Agent und x86-basierte Images verwenden fluentd. Wenn Sie nur die standardmäßige Logging-Konfiguration verwenden, die in den Betriebssystem-Images enthalten ist, sollten Sie keinen Unterschied feststellen. Wenn Sie jedoch benutzerdefinierte Fluentd-Konfigurationen haben, kann es bei der Migration von Arbeitslasten zu Arm-basierten Container-Optimized OS-Images zu Fehlern kommen. Weitere Informationen finden Sie im Hilfeartikel Cloud Logging-Agent.

Automatische Updates

Automatische Updates werden für Arm-basierte Container-Optimized OS-Images nicht unterstützt.

GPU-Beschleuniger

Die Verwendung von Hardwarebeschleunigern der Grafikprozessoreinheit (GPU) wird auf ARM-basierten Container-Optimized OS-Images nicht unterstützt.

Instanzen mit dem Befehl create-with-container erstellen

Arm-basierte Container-Optimized OS-Images unterstützen nicht das Erstellen von VM-Instanzen mit dem Befehl create-with-container. Sie können cloud-init verwenden, um Arm-basierte Instanzen zu konfigurieren, wenn Sie Container beim Erstellen von Instanzen starten möchten.

Container-Images

Container-Optimized OS enthält Tools, mit denen Container zur Laufzeit heruntergeladen werden. In der folgenden Tabelle wird beschrieben, welche Container mit ARM-basierten Images kompatibel sind:

Container-Images Kompatibel mit Arm-basierten Images
gcr.io/cos-cloud/toolbox Ja
gcr.io/cos-cloud/cos-gpu-installer Nein
gcr.io/stackdriver-agents/stackdriver-logging-agent Nein
gcr.io/gce-containers/konlet Nein