Usar imágenes de Container-Optimized OS basadas en Arm

A partir de la versión 101, Container-Optimized OS publica imágenes de SO basadas en Arm. Las imágenes se pueden usar para crear máquinas virtuales Tau T2A en Compute Engine. Para obtener más información sobre los tipos de cargas de trabajo que funcionan bien con Tau T2A, consulta las recomendaciones de cargas de trabajo. Para saber cómo puedes ejecutar cargas de trabajo de Arm en Google Kubernetes Engine (GKE), consulta Cargas de trabajo de Arm en GKE.

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 versiones disponibles en la línea de comandos ejecutando el siguiente comando:

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

El resultado debería ser similar al siguiente:

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 versiones y el ciclo de vida de la versión 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 Arm y x86

Las imágenes de Container-Optimized OS basadas en Arm y en x86 comparten el mismo código fuente, pero las configuraciones de compilación son diferentes. Esto significa que una imagen de Container-Optimized OS basada en Arm puede no ser funcionalmente idéntica a una imagen de Container-Optimized OS basada en x86, aunque tengan la misma versión.

En las secciones siguientes se describen las diferencias entre las imágenes de Container-Optimized OS basadas en Arm y en x86.

Kernel

Las imágenes basadas en Arm de Container-Optimized OS tienen una configuración del 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 la NIC virtual de Google (gVNIC) para la red en lugar de Virtionet. La función Container Threat Detection 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, mientras que las imágenes basadas en x86 usan fluentd. No deberías notar ninguna diferencia si solo usas la configuración de registro predeterminada integrada en las imágenes del SO. Sin embargo, si tienes configuraciones de fluentd personalizadas, es posible que se produzcan errores al migrar cargas de trabajo a imágenes de Container-Optimized OS basadas en Arm. Para obtener más información, consulta el artículo sobre el agente de Cloud Logging.

Actualizaciones automáticas

Las actualizaciones automáticas no se admiten en imágenes basadas en Arm de Container-Optimized OS.

Aceleradores de GPU

No se admite el uso de aceleradores de hardware de unidades de procesamiento gráfico (GPUs) en imágenes basadas en ARM de Container-Optimized OS.

Crear 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 quieres iniciar contenedores cuando se creen instancias.

Imágenes de contenedor

Container-Optimized OS incluye herramientas que descargan contenedores en tiempo de ejecución. En la siguiente tabla se describe qué contenedores son compatibles con imágenes basadas en Arm:

Imágenes de contenedor Compatible con imágenes basadas en 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