ARM-basierte Container-Optimized OS-Images verwenden

Ab Milestone 101 veröffentlicht Container-Optimized OS ARM-basierte Betriebssystem-Images. Die Images können verwendet werden, um Tau T2A-VMs in Compute Engine zu erstellen. Weitere Informationen darüber, welche Arten von Arbeitslasten gut mit Tau T2A funktionieren, finden Sie unter Arbeitslastempfehlungen. Informationen zum Ausführen von Arm-Arbeitslasten in Google Kubernetes Engine (GKE) finden Sie unter Arbeitslasten in GKE scharf schalten.

Arm-basierte Bilder ansehen

ARM-basierte Container-Optimized OS-Images werden im Projekt cos-cloud mit dem Präfix cos-arm64 gehostet. Sie können auch alle derzeit verfügbaren Releases über die Befehlszeile aufrufen, indem Sie den folgenden Befehl ausführen:

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 Versionsverwaltungsschema und denselben LTS-Meilensteinlebenszyklus wie x86-basierte Images. Es gibt auch ähnliche Image-Familien cos-arm64-dev, cos-arm64-beta, cos-arm64-stable und cos-arm64-[MILESTONE]-lts für Arm-basierte Container-Optimized OS-Images.

Unterschiede zwischen ARM- und x86-Bildern

Die Arm- und x86-basierten Container-Optimized OS-Images verwenden denselben Quellcode, die Build- und Kompilierungskonfigurationen unterscheiden sich jedoch. Dies bedeutet, dass ein Arm-basiertes Container-Optimized OS-Image möglicherweise nicht dieselbe Funktion wie ein x86-basiertes Container-Optimized OS-Image hat, selbst wenn sie dieselbe Version haben.

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

Kernel

ARM-basierte Images von Container-Optimized OS haben eine separate Kernel-Konfiguration, die sich von x86-basierten Images unterscheidet. Der auffälligste Unterschied besteht darin, dass Arm-basierte Images anstelle der SCSI-Schnittstelle die NVMe-Schnittstelle zum Speichern und die virtuelle Google-NIC (gVNIC) für das Netzwerk anstelle von Virtionet verwenden. Die Funktion Container Threat Detection kann auch nicht bei ARM-basierten Images verwendet werden.

Cloud Logging-Agent

ARM-basierte Images von Container-Optimized OS nutzen fluent-Bit als Cloud Logging-Agent und x86-basierte Images verwenden fluentd. Sie sollten keinen Unterschied feststellen, wenn Sie sich nur auf die Standard-Logging-Konfiguration verlassen, die in die Betriebssystem-Images eingebunden ist. Wenn Sie jedoch benutzerdefinierte GTFS-Konfigurationen haben, kann es bei der Migration von Arbeitslasten zu ARM-basierten Container-Optimized OS-Images zu Fehlern kommen. Weitere Informationen finden Sie im Cloud Logging-Agent.

Automatische Updates

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

GPU-Beschleuniger

Die Verwendung von GPU-Hardwarebeschleunigern wird in ARM-basierten Images von Container-Optimized OS nicht unterstützt.

Instanzen mit dem Befehl create-with-container erstellen

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

Container-Images

Container-Optimized OS enthält Tools, die containers zur Laufzeit herunterladen. In der folgenden Tabelle wird beschrieben, welche Container mit Arm-basierten Images kompatibel sind:

Container-Images Kompatibel mit Bildern auf Arm-Basis
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