Criar nós com AMIs do Amazon Linux otimizadas - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Criar nós com AMIs do Amazon Linux otimizadas

A AMI do Amazon Linux otimizada para o Amazon EKS é desenvolvida com base no Amazon Linux 2 (AL2) e no Amazon Linux 2023 (AL2023). Está configurada para servir como imagem base para nós do Amazon EKS. A AMI é configurada para funcionar com o Amazon EKS e inclui os seguintes componentes:

  • kubelet

  • AWS IAM Authenticator

  • Docker(Amazon EKS versão 1.23 e anteriores)

  • containerd

nota
  • É possível acompanhar eventos de segurança ou de privacidade para o AL2 no Amazon Linux Security Center ou ao se tornar assinante do Feed RSS associado. Os eventos de segurança e privacidade incluem uma visão geral do problema, quais pacotes são afetadas e como atualizar suas instâncias para corrigir o problema.

  • Antes de implantar uma AMI acelerada ou do Arm, analise as informações em AMIs do Amazon Linux aceleradas e otimizadas para Amazon EKS e AMIs Amazon Linux Arm otimizadas para Amazon EKS.

  • Para o Kubernetes versão1.23, você pode usar um sinalizador de bootstrap opcional para testar a migração de Docker para containerd. Para obter mais informações, consulte Teste a migração do Amazon Linux 2 de Docker para containerd.

  • A partir do Kubernetes versão 1.25, não será mais possível usar instâncias P2 do Amazon EC2 com as AMIs aceleradas do Amazon Linux otimizadas para o Amazon EKS prontas para uso. Essas AMIs para o Kubernetes versões 1.25 ou posteriores serão compatíveis com drivers série NVIDIA 525 ou posterior, que são incompatíveis com as instâncias P2. No entanto, os drivers da série NVIDIA 525 ou posteriores são compatíveis com as instâncias P3, P4 e P5. Portanto, é possível usar essas instâncias com as AMIs para o Kubernetes versão 1.25 ou posterior. Antes que seus clusters do Amazon EKS sejam atualizados para a versão 1.25, migre qualquer instância P2 para instâncias P3, P4 e P5. Você também deverá atualizar proativamente suas aplicações para funcionar com a série NVIDIA 525 ou posterior. Planejamos transferir os drivers da série NVIDIA 525 ou mais recente ou para as versões 1.23 e 1.24 do Kubernetes no final de janeiro de 2024.

  • Todos os grupos de nós gerenciados recém-criados em clusters na versão 1.30 ou mais recente terão como padrão automático o uso do AL2023 como sistema operacional do nó. Anteriormente, os novos grupos de nós seriam padronizados para usar o AL2. É possível continuar a usar AL2 ao escolhê-lo como o tipo de AMI durante a criação de um novo grupo de nós.

  • O suporte para o AL2 será encerrado em 30 de junho de 2025. Para obter mais informações, consulte Perguntas frequentes do Amazon Linux 2.

AMIs do Amazon Linux aceleradas e otimizadas para Amazon EKS

nota

As AMIs aceleradas do Amazon EKS baseadas no AL2023 estarão disponíveis posteriormente. Caso tenha workloads aceleradas, você deverá continuar a usar a AMI acelerada do AL2 ou o Bottlerocket.

A AMI do Amazon Linux otimizada e acelerada para o Amazon EKS é desenvolvida sobre a AMI do Amazon Linux otimizada para o Amazon EKS padrão. A AMI está configurada para servir como uma imagem opcional para nós do Amazon EKS com a finalidade de oferecer suporte a workloads baseadas em GPU, no Inferentia e no Trainium.

Além da configuração padrão da AMI otimizada para Amazon EKS, a AMI acelerada inclui o seguinte:

  • Drivers NVIDIA

  • nvidia-container-runtime

  • Driver do AWS Neuron

Para obter uma lista dos componentes mais recentes incluídos na AMI acelerada, consulte amazon-eks-ami Releases no GitHub.

nota
  • A AMI acelerada, otimizada para o Amazon EKS, é compatível apenas com tipos de instâncias baseadas em GPU e Inferentia. Especifique esses tipos de instância no template do AWS CloudFormation do nó. Ao usar a AMI acelerada otimizada para o Amazon EKS, você concorda com o Contrato de licença do usuário final (EULA) da NVIDIA.

  • A AMI acelerada, otimizada para o Amazon EKS, era mencionada anteriormente como a AMI otimizada para o Amazon EKS compatível com GPU.

  • As versões anteriores da AMI acelerada, otimizada para o Amazon EKS, tinham o repositório nvidia-docker instalado. O repositório não está mais incluído na versão v20200529 da AMI para o Amazon EKS e posteriores.

Para habilitar workloads baseadas no AWS Neuron (acelerador de ML)

Para obter detalhes sobre workloads de treinamento e inferência usando o Neuron no Amazon EKS, consulte as seguintes referências:

Para habilitar workloads baseadas em GPU

O procedimento a seguir descreve como executar uma workload em uma instância baseada em GPU com a AMI acelerada otimizada para o Amazon EKS.

  1. Depois que seus nós de GPU ingressarem no cluster, você deverá aplicar o Plug-in de dispositivo NVIDIA para Kubernetes como um DaemonSet em seu cluster. Substitua vX.X.X pela versão desejada de NVIDIA/k8s-device-plugin antes de executar o comando a seguir.

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X/deployments/static/nvidia-device-plugin.yml
  2. Você pode verificar se os nós têm GPUs alocáveis com o seguinte comando:

    kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"
Para implantar um Pod e testar se os nós da GPU estão configurados corretamente
  1. Crie um arquivo denominado nvidia-smi.yaml com o seguinte conteúdo: Substitua tag pela tag desejada para nvidia/cuda. Este manifesto inicia um contêiner NVIDIA CUDA que executa o nvidia-smi em um nó.

    apiVersion: v1 kind: Pod metadata: name: nvidia-smi spec: restartPolicy: OnFailure containers: - name: nvidia-smi image: nvidia/cuda:tag args: - "nvidia-smi" resources: limits: nvidia.com/gpu: 1
  2. Aplique o manifesto com o comando a seguir.

    kubectl apply -f nvidia-smi.yaml
  3. Após a execução do Pod ser concluída, visualize os logs com o comando a seguir.

    kubectl logs nvidia-smi

    Veja um exemplo de saída abaixo.

    Mon Aug  6 20:23:31 20XX
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI XXX.XX                 Driver Version: XXX.XX                    |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla V100-SXM2...  On   | 00000000:00:1C.0 Off |                    0 |
    | N/A   46C    P0    47W / 300W |      0MiB / 16160MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID   Type   Process name                             Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+

AMIs Amazon Linux Arm otimizadas para Amazon EKS

As instâncias Arm oferecem uma economia significativa para aplicações de expansão e baseadas no Arm, como servidores Web, microsserviços conteinerizados, frotas de armazenamento em cache e datastores distribuídos. Ao adicionar nós do Arm ao cluster, revise as considerações a seguir.

Considerações
  • Se o cluster tiver sido implantado antes de 17 de agosto de 2020, será necessário fazer uma atualização única dos manifestos essenciais do complemento de cluster. Isso serve para que o Kubernetes possa extrair a imagem correta para cada arquitetura de hardware em uso em seu cluster. Para obter mais informações sobre como atualizar complementos do cluster, consulte Atualizar a versão do Kubernetes de um cluster do Amazon EKS. Se você implantou o cluster a partir de 17 de agosto de 2020, os complementos CoreDNS, kube-proxy e Amazon VPC CNI plugin for Kubernetes já têm capacidade para várias arquiteturas.

  • As aplicações implantadas em nós do Arm devem ser compiladas para Arm.

  • Se tiver DaemonSets implantados em um cluster existente ou quiser implantá-los em um novo cluster no qual também queira implantar nós do Arm, verifique se o DaemonSet pode ser executado em todas as arquiteturas de hardware do cluster.

  • Você pode executar grupos de nós do Arm e grupos de nós x86 no mesmo cluster. Se o fizer, considere implantar imagens de contêiner de várias arquiteturas em um repositório de contêineres, como o Amazon Elastic Container Registry, e depois adicionar seletores de nós aos manifestos para que o Kubernetes saiba em que arquitetura de hardware um Pod pode ser implantado. Para obter mais informações, consulte Enviar uma imagem de várias arquiteturas no Guia do usuário do Amazon ECR e a publicação de blog Introducing multi-architecture container images for Amazon ECR.

Mais informações

Para obter mais informações sobre o uso de AMIs Amazon Linux otimizadas para Amazon EKS, consulte as seguintes seções: