A partir del evento importante 101, Container-Optimized OS publica imágenes de SO basadas en Arm. Las imágenes se pueden usar para crear VMs de Tau T2A en Compute Engine. Para obtener más información sobre qué tipos de cargas de trabajo funcionan bien con Tau T2A, consulta Recomendaciones de cargas de trabajo. Para obtener información sobre cómo ejecutar cargas de trabajo de Arm en Google Kubernetes Engine (GKE), consulta Cargas de trabajo de Arm en GKE.
Cómo ver imágenes basadas en ARM
Las imágenes de Container-Optimized OS basadas en Arm se alojan en el proyecto cos-cloud
con el prefijo cos-arm64
. También puedes ver todas las actualizaciones disponibles en este momento en la línea de comandos. Para ello, ejecuta el siguiente comando:
gcloud compute images list --project cos-cloud --no-standard-images --filter="name~'cos-arm64-*'"
El resultado es similar a este:
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
Las imágenes de Container-Optimized OS basadas en Arm comparten el mismo esquema de control de versiones y el ciclo de vida de eventos importantes de LTS con las imágenes basadas en x86. También hay familias de imágenes similares cos-arm64-dev
, cos-arm64-beta
, cos-arm64-stable
y cos-arm64-[MILESTONE]-lts
para imágenes de Container-Optimized OS basadas en Arm.
Diferencias entre las imágenes de Arm y x86
Las imágenes de Container-Optimized OS basadas en Arm y x86 comparten el mismo código fuente, pero las configuraciones de compilación y compilación son diferentes. Esto significa que una imagen de Container-Optimized OS basada en Arm podría no ser funcionalmente idéntica a una imagen de Container-Optimized OS basada en x86, incluso si tienen la misma versión.
En las siguientes secciones, se describen las diferencias entre las imágenes de Container-Optimized OS basadas en Arm y en x86.
Kernel
Las imágenes de Container-Optimized OS basadas en Arm tienen una configuración de kernel independiente que es diferente de las imágenes basadas en x86. La diferencia más notable es que las imágenes basadas en Arm usan la interfaz NVMe para el almacenamiento en lugar de la interfaz SCSI y NIC virtual de Google (gVNIC) para las herramientas de redes en lugar de Virtio-net. La función Detección de amenazas a contenedores tampoco funciona en imágenes basadas en Arm.
Agente de Cloud Logging
Las imágenes basadas en Arm de Container-Optimized OS usan fluent-bit como agente de Cloud Logging, y las imágenes basadas en x86 usan fluentd. No deberías ver ninguna diferencia si solo confías en la configuración de registro predeterminada integrada en las imágenes del SO. Sin embargo, si tienes configuraciones personalizadas de fluentd, es posible que experimentes fallas cuando migres cargas de trabajo a imágenes de Container-Optimized OS basadas en Arm. Para obtener más información, consulta el agente de Cloud Logging.
Actualizaciones automáticas
Las actualizaciones automáticas no son compatibles con las imágenes de Container-Optimized OS basadas en Arm.
Aceleradores de GPU
El uso de aceleradores de hardware de unidades de procesamiento gráfico (GPU) no es compatible con las imágenes basadas en ARM de Container-Optimized OS.
Crea instancias con el comando create-with-container
Las imágenes basadas en Arm de Container-Optimized OS no admiten la creación de instancias de VM con el comando create-with-container
. Puedes usar cloud-init
para configurar instancias basadas en Arm si deseas iniciar contenedores cuando se crean instancias.
Imágenes de contenedor
Container-Optimized OS incluye herramientas que descargan contenedores durante el tiempo de ejecución. En la siguiente tabla, se describen los contenedores compatibles con las imágenes basadas en Arm:
Imágenes de contenedor | Compatible con imágenes basadas en Arm |
---|---|
gcr.io/cos-cloud/toolbox | Sí |
gcr.io/cos-cloud/cos-gpu-installer | No |
gcr.io/stackdriver-agents/stackdriver-logging-agent | No |
gcr.io/gce-containers/konlet | No |