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 Tau T2A no Compute Engine. Para saber mais sobre que tipos de cargas de trabalho funcionam bem com o Tau T2A, consulte Recomendações de carga de trabalho. Para saber como executar cargas de trabalho Arm no Google Kubernetes Engine (GKE), consulte Armem cargas de trabalho no GKE.

Como visualizar imagens baseadas em ARM

As imagens do Container-Optimized OS baseadas em ARM são hospedadas em cos-cloud com o prefixo cos-arm64. Também é possível ver todos os modelos 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 controle de versão e LTS ciclo de vida do marco 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 a mesma código-fonte, mas as configurações de build e compilação são diferentes. Isso significa A imagem do Container-Optimized OS baseada em ARM pode não ser funcionalmente idêntica com uma imagem do Container-Optimized OS baseada em x86 para a versão anterior.

As seções a seguir descrevem as diferenças entre arquiteturas Arm e do Container-Optimized OS com base em x86.

Kernel

As imagens baseadas em ARM do Container-Optimized OS têm uma configuração de kernel separada 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. NIC virtual do Google (gVNIC) para em vez da Virtionet. O Detecção de ameaças a contêineres 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. Você não verá nenhuma diferença se confiar apenas no configuração padrão da geração de registros incorporada nas imagens do SO. No entanto, se você tiver configurações personalizadas do fluentd, poderá haver falhas 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 oferecem suporte à criação de instâncias de VM com o create-with-container kubectl. É 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 containers em no ambiente de execução. A tabela a seguir descreve quais contêineres são compatíveis 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