Como usar imagens do Container-Optimized OS baseadas em Arm

A partir do Marco 101, o Container-Optimized OS publica imagens do SO baseadas em Arm. As imagens podem ser usadas para criar VMs Tau T2A no Compute Engine. Para saber mais sobre os tipos de cargas de trabalho que funcionam bem com o 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 baseadas em Arm são hospedadas no projeto cos-cloud com o prefixo cos-arm64. Você também pode conferir todas as versões disponíveis 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 versionamento e o ciclo de vida de marco do LTS com as imagens baseadas em x86. Também há 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 com base em ARM e 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 SO otimizado para contêineres baseada em Arm pode não ser funcionalmente idêntica a uma imagem do SO otimizado para contêineres baseada em x86, mesmo que tenham a mesma versão.

As seções a seguir descrevem as diferenças entre imagens do Container-Optimized OS com base em Arm e 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 notável é que as imagens baseadas em Arm usam a interface NVMe para armazenamento em vez da interface SCSI e NIC virtual do Google (gVNIC) para rede em vez do Virtio-net. 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 agente de registro do Cloud, e as imagens baseadas em x86 usam o fluentd. Não vai haver diferença se você usar apenas a configuração de registro padrão integrada às imagens do SO. No entanto, se você tiver configurações personalizadas do fluentd, poderá ocorrer uma falha ao migrar cargas de trabalho para imagens do SO otimizado para contêineres baseadas em Arm. Para mais informações, consulte o Agente do Cloud Logging.

Atualizações automáticas

As atualizações automáticas não têm suporte para imagens baseadas em Arm do Container-Optimized OS.

Aceleradores da GPU

Não é possível usar aceleradores de hardware da unidade de processamento gráfico (GPU) em 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 oferecem suporte à 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 você quiser iniciar contêineres quando as instâncias forem criadas.

Imagens do Container

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

Imagens do Container 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