Gerenciar dispositivos de hardware no Amazon EKS - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Gerenciar dispositivos de hardware no Amazon EKS

O Amazon EKS oferece suporte a dois mecanismos do Kubernetes para gerenciar dispositivos de hardware especializados em clusters do EKS: Alocação dinâmica de recursos (DRA) e plug-ins de dispositivos. Ambos os mecanismos permitem que as workloads acessem aceleradores de hardware, como GPUs NVIDIA e chips AWS Trainium, e dispositivos de rede de alta performance, como o Elastic Fabric Adapter (EFA). Recomenda-se usar drivers DRA para novas implantações com versões 1.34 e posteriores do Kubernetes, pois o DRA oferece uma seleção mais ampla de dispositivos, agendamento com reconhecimento de topologia e recursos de compartilhamento de dispositivos que não são possíveis com plug-ins de dispositivos.

Consulte a documentação do Kubernetes sobre Alocação dinâmica de recursos e plug-ins de dispositivos para obter informações gerais sobre esses dois recursos do Kubernetes.

Alocação dinâmica de recursos x plug-ins de dispositivos

Os plug-ins de dispositivos do Kubernetes têm sido o principal mecanismo para integrar hardware especializado às workloads do Kubernetes. Os plug-ins de dispositivos anunciam os dispositivos como recursos estendidos (por exemplo, nvidia.com/gpu ou aws.amazon.com/neuroncore) que você solicita nas solicitações e limites de recursos do contêiner. Embora os plug-ins de dispositivos sejam amplamente compatíveis e utilizados, eles apresentam algumas limitações:

  • Os dispositivos são solicitados como contagens inteiras opacas, sem filtragem baseada em atributos.

  • Não há suporte para o compartilhamento de dispositivos entre contêineres ou Pods.

  • Não há alocação expressiva que leve em conta a topologia entre os diferentes tipos de dispositivos.

  • Extensões personalizadas do agendador são frequentemente necessárias para uma colocação inteligente.

A Alocação dinâmica de recursos (DRA) é um recurso do Kubernetes disponibilizado para o público em geral na versão 1.34 do Kubernetes, que resolve essas limitações. Com o DRA, os drivers de dispositivos publicam atributos detalhados dos dispositivos para o agendador do Kubernetes por meio de objetos ResourceSlice. Você solicita dispositivos usando objetos ResourceClaim e ResourceClaimTemplate que fazem referência a categorias DeviceClass.

O DRA permite:

  • Seleção de dispositivos com base em atributos utilizando expressões Common Expression Language (CEL).

  • Alocação sensível à topologia que garante que os dispositivos fiquem localizados no mesmo switch PCIe ou domínio NUMA.

  • Compartilhamento de dispositivos entre vários contêineres ou Pods por meio de referências ResourceClaim compartilhadas.

  • Programação baseada em restrições que coordena diferentes tipos de dispositivos

Drivers DRA para o Amazon EKS

Os seguintes drivers DRA são comumente usados para gerenciar dispositivos de hardware especializados em clusters do Amazon EKS.

Driver Neuron DRA

O driver Neuron DRA gerencia a alocação de dispositivos AWS Trainium e AWS Inferentia2 por meio do agendamento com reconhecimento de topologia, alocação de subconjuntos de dispositivos conectados e configuração do NeuronCore lógico (LNC), sem a necessidade de extensões personalizadas do agendador.

Driver de DRA da NVIDIA

O driver NVIDIA DRA para GPUs permite a alocação flexível e a reconfiguração dinâmica das GPUs NVIDIA, incluindo suporte a recursos ComputeDomain para workloads Multi-Node NVLink (MNNVL) em instâncias Grace-Blackwell do EC2. Para obter mais informações sobre como usar ComputeDomains com instâncias Grace-Blackwell do EC2, consulte Uso do P6e-GB200 UltraServers com o Amazon EKS.

Plug-ins de dispositivos para o Amazon EKS

Os seguintes plug-ins de dispositivo são comumente usados para gerenciar dispositivos de hardware especializados em clusters do Amazon EKS.

Plug-in de dispositivo do EFA

O plug-in do dispositivo EFA detecta todos os dispositivos EFA disponíveis em cada nó e os anuncia como recursos estendidos vpc.amazonaws.com/efa.

Plug-in do dispositivo Neuron

O plug-in do dispositivo Neuron expõe o hardware Neuron como recursos estendidos aws.amazon.com/neuroncore e aws.amazon.com/neuron. Ele detecta os dispositivos Neuron disponíveis em cada nó, os anuncia como recursos alocáveis e gerencia seu ciclo de vida.

Plug-in de dispositivo NVIDIA

O plug-in de dispositivo da NVIDIA apresenta as GPUs da NVIDIA como recursos estendidos nvidia.com/gpu e monitora a integridade das GPUs.

Considerações

Antes de usar drivers DRA no Amazon EKS, analise as seguintes considerações:

  • O DRA está disponível no Amazon EKS com o Kubernetes versão 1.33 e superior, mas é recomendado para as versões 1.34 e posteriores do Kubernetes devido a um problema no Kubernetes original. O ambiente de gerenciamento e os nós do seu cluster devem estar executando uma versão do Kubernetes compatível com o DRA.

  • Atualmente, o DRA não é compatível com o Karpenter nem com os recursos de computação provisionados pelo Modo Automático do EKS. Você deve usar grupos de nós gerenciados pelo EKS ou nós autogerenciados com drivers DRA.

  • Os drivers DRA e os plug-ins de dispositivo para o mesmo tipo de dispositivo não devem ser executados simultaneamente no mesmo nó. Desinstale o plug-in do dispositivo antes de instalar o driver DRA correspondente ou realize a implantação em nós separados. Consulte o KEP-5004 do Kubernetes para obter atualizações sobre a compatibilidade do driver DRA e do plug-in de dispositivo.

  • O DRA utiliza diferentes recursos da API do Kubernetes (ResourceClaim, ResourceClaimTemplate, DeviceClass) em vez de plug-ins de dispositivos (resource.limits, resource.requests). A migração de plug-ins de dispositivo para o DRA é necessária para a atualização das especificações da sua workload.

  • Os plug-ins de dispositivos continuam sendo totalmente compatíveis com todas as versões do Kubernetes. Se o seu cluster estiver executando uma versão do Kubernetes anterior à 1.34, se você usar o Karpenter ou o EKS Auto Mode, ou se usar o Bottlerocket, continue usando os plug-ins de dispositivo.

Tópicos