Ab Meilenstein 101 werden Arm-basierte Betriebssystem-Images für Container-Optimized OS veröffentlicht. Die Images können verwendet werden, um Tau-T2A-VMs in Compute Engine zu erstellen. Weitere Informationen dazu, welche 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 Arm-Arbeitslasten in GKE.
ARM-basierte Bilder 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 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 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. 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-Images
Die Arm-basierten und x86-basierten Container-Optimized OS-Images haben denselben Quellcode, aber die Build- und Kompilierungskonfigurationen sind unterschiedlich. Das bedeutet, dass ein Arm-basiertes Container-Optimized OS-Image möglicherweise nicht funktional identisch mit einem x86-basierten Container-Optimized OS-Image 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
Container-Optimized OS-Images für Arm-basierte Systeme haben eine separate Kernelkonfiguration, die sich von x86-basierten Images unterscheidet. Der auffälligste Unterschied besteht darin, dass Arm-basierte Images die NVMe-Schnittstelle für Speicher anstelle der SCSI-Schnittstelle und Google Virtual NIC (gVNIC) für das Netzwerk anstelle von Virtionet verwenden. Die Funktion Container Threat Detection funktioniert auch nicht bei Arm-basierten Images.
Cloud Logging-Agent
Container-Optimized OS-Images für Arm-basierte Architekturen verwenden fluent-bit als Cloud Logging-Agent und x86-basierte Images verwenden fluentd. Wenn Sie sich nur auf die in die Betriebssystem-Images integrierte Standardkonfiguration für die Protokollierung verlassen, 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 Problemen kommen. Weitere Informationen finden Sie unter Cloud Logging-Agent.
Automatische Updates
Automatische Updates werden für Container-Optimized OS-Images auf Arm-Basis nicht unterstützt.
GPU-Beschleuniger
Die Verwendung von Hardwarebeschleunigern für Grafikprozessoren (GPUs) wird auf Container-Optimized OS-Images, die auf Arm basieren, nicht unterstützt.
Instanzen mit dem Befehl create-with-container
erstellen
Mit dem Befehl create-with-container
können keine VM-Instanzen mit Container-Optimized OS-Images auf Arm-Basis erstellt werden. 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 |