Utilizzo di immagini Container-Optimized OS basate su Arm

A partire dalla Milestone 101, Container-Optimized OS pubblica immagini del sistema operativo basate su Arm. Le immagini possono essere utilizzate per creare VM Tau T2A su Compute Engine. Per scoprire di più sui tipi di workload che funzionano bene con Tau T2A, consulta Suggerimenti per i workload. Per scoprire come eseguire i workload Arm su Google Kubernetes Engine (GKE), consulta Workload Arm su GKE.

Visualizzare le immagini basate su Arm

Le immagini Container-Optimized OS basate su Arm sono ospitate nel progetto cos-cloud con il prefisso cos-arm64. Puoi anche visualizzare tutte le versioni disponibili nella riga di comando eseguendo questo comando:

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

L'output è simile al seguente:

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

Le immagini Container-Optimized OS basate su Arm condividono lo stesso schema di controllo delle versioni e lo stesso ciclo di vita delle tappe fondamentali LTS con le immagini basate su x86. Esistono anche famiglie di immagini simili cos-arm64-dev, cos-arm64-beta, cos-arm64-stable e cos-arm64-[MILESTONE]-lts per le immagini Container-Optimized OS basate su Arm.

Differenze tra le immagini Arm e x86

Le immagini Container-Optimized OS basate su Arm e x86 condividono lo stesso codice sorgente, ma le configurazioni di build e compilazione sono diverse. Ciò significa che un'immagine di Container-Optimized OS basata su Arm potrebbe non essere funzionalmente identica a un'immagine di Container-Optimized OS basata su x86, anche se hanno la stessa versione.

Le sezioni seguenti descrivono le differenze tra le immagini Container-Optimized OS basate su Arm e quelle basate su x86.

Kernel

Le immagini Container-Optimized OS basate su Arm hanno una configurazione del kernel separata diversa da quella delle immagini basate su x86. La differenza più evidente è che le immagini basate su Arm utilizzano l'interfaccia NVMe per lo spazio di archiviazione anziché l'interfaccia SCSI e Google Virtual NIC (gVNIC) per la rete anziché Virtionet. La funzionalità Container Threat Detection non funziona nemmeno sulle immagini basate su Arm.

Agente Cloud Logging

Le immagini basate su Container-Optimized OS Arm utilizzano fluent-bit come agente Cloud Logging e le immagini basate su x86 utilizzano fluentd. Non dovresti notare alcuna differenza se utilizzi solo la configurazione di logging predefinita integrata nelle immagini del sistema operativo. Tuttavia, se hai configurazioni fluentd personalizzate, potresti riscontrare problemi durante la migrazione dei carichi di lavoro alle immagini Container-Optimized OS basate su Arm. Per saperne di più, consulta la pagina Agente Cloud Logging.

Aggiornamenti automatici

Gli aggiornamenti automatici non sono supportati sulle immagini basate su Container-Optimized OS Arm.

Acceleratori GPU

L'utilizzo di acceleratori hardware per unità di elaborazione grafica (GPU) non è supportato nelle immagini basate su Container-Optimized OS Arm.

Crea istanze con il comando create-with-container

Le immagini basate su Container-Optimized OS Arm non supportano la creazione di istanze VM con il comando create-with-container. Puoi utilizzare cloud-init per configurare le istanze basate su Arm se vuoi avviare i container quando vengono create le istanze.

Immagini container

Container-Optimized OS include strumenti che scaricano i container in fase di runtime. La seguente tabella descrive quali container sono compatibili con le immagini basate su Arm:

Immagini container Compatibile con le immagini basate su Arm
gcr.io/cos-cloud/toolbox
gcr.io/cos-cloud/cos-gpu-installer No
gcr.io/stackdriver-agents/stackdriver-logging-agent No
gcr.io/gce-containers/konlet No