Como usar imagens do Container-Optimized OS baseadas em ARM

A partir do marco 101, o Container-Optimized OS publica imagens de SO baseadas em ARM. As imagens podem ser usadas para criar VMs Ta T2A no Compute Engine. Para saber mais sobre quais tipos de cargas de trabalho funcionam bem com Tau T2A, consulte Recomendações de carga de trabalho. Para saber como executar cargas de trabalho do Arm no Google Kubernetes Engine (GKE), consulte Cargas de trabalho do ARM no GKE.

Como visualizar imagens baseadas em ARM

As imagens do Container-Optimized OS com base em ARM são hospedadas no projeto cos-cloud com o prefixo cos-arm64. Também é possível ver todas as versões disponíveis atualmente na linha de comando, executando o seguinte comando:

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

O resultado será assim:

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

As imagens do Container-Optimized OS baseadas em ARM compartilham o mesmo esquema de controle de versões e ciclo de vida de marco do LTS com imagens baseadas em x86. Há também famílias de imagens semelhantes cos-arm64-dev, cos-arm64-beta, cos-arm64-stable e cos-arm64-[MILESTONE]-lts para imagens do Container-Optimized OS baseadas em ARM.

Diferenças entre imagens Arm e x86

As imagens do Container-Optimized OS baseadas em ARM e em x86 compartilham o mesmo código-fonte, mas as configurações de build e compilação são diferentes. Isso significa que uma imagem do Container-Optimized OS com base em ARM pode não ser funcionalmente idêntica a uma imagem do Container-Optimized OS com base em x86, mesmo que elas tenham a mesma versão.

As seções a seguir descrevem as diferenças entre imagens do Container-Optimized OS baseadas em ARM e em x86.

Kernel

As imagens baseadas em ARM do Container-Optimized OS têm uma configuração de kernel separada que é diferente das imagens baseadas em x86. A diferença mais perceptível é que as imagens baseadas em ARM usam a interface NVMe para armazenamento em vez da interface SCSI e a NIC virtual do Google (gVNIC) para rede, em vez de Virtionet. O recurso Container Threat Detection também não funciona em imagens baseadas em ARM.

Agente do Cloud Logging

As imagens baseadas em ARM do Container-Optimized OS usam o fluent-bit como o agente do Cloud Logging, e as imagens baseadas em x86 usam o dentro. Você não verá nenhuma diferença se depender apenas da configuração de geração de registros padrão integrada às imagens do SO. No entanto, se você tiver configurações personalizadas do utilizando, poderá haver interrupções ao migrar cargas de trabalho para imagens do Container-Optimized OS baseadas em ARM. Para mais informações, consulte o agente do Cloud Logging.

Atualizações automáticas

As atualizações automáticas não são compatíveis com imagens baseadas em ARM do Container-Optimized OS.

Aceleradores da GPU

O uso de aceleradores de hardware da unidade de processamento gráfico (GPU) não é compatível com imagens baseadas em ARM do Container-Optimized OS.

Como criar instâncias com o comando create-with-container

As imagens baseadas em ARM do Container-Optimized OS não são compatíveis com a criação de instâncias de VM com o comando create-with-container. É possível usar cloud-init para configurar instâncias baseadas em ARM se quiser iniciar contêineres quando as instâncias forem criadas.

Imagens de contêiner

O Container-Optimized OS inclui ferramentas que fazem o download de containers no momento da execução. A tabela a seguir descreve quais contêineres são compatíveis com imagens baseadas em ARM:

Imagens de contêiner Compatível com imagens baseadas em ARM
gcr.io/cos-cloud/toolbox Sim
gcr.io/cos-cloud/cos-gpu-installer Não
gcr.io/stackdriver-agents/stackdriver-logging-agent Não
gcr.io/gce-containers/konlet Não