Plug-in de GPU AMD

Ao ativar o complemento de cluster do Plug-in AMD GPU, você pode passar os pares de chave/valor a seguir como argumentos.

Observe que, para garantir que as cargas de trabalho em execução nos nós de trabalho da GPU AMD não sejam interrompidas inesperadamente, recomendamos que você escolha a versão do complemento do Plug-in da GPU AMD a ser implantada, em vez de especificar que deseja que a Oracle atualize o complemento automaticamente.

Argumentos de Configuração Comuns à maioria dos Complementos de Cluster
Chave (API e CLI) Nome para Exibição da Chave (Console) Descrição Obrigatório/Opcional Valor Padrão Valor de Exemplo
affinity afinidade

Um grupo de regras de programação de afinidade.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Operador de GPU Nvidia
Possíveis equivalentes:
  • Descoberta de Recursos do Nó, use master.affinity
  • Operador de Rede NVIDIA, use operator.affinity
  • Driver SMB CSI, use contoller.affinity
  • Operador de GPU AMD, use controllerManager.affinity
Opcional null null
nodeSelectors seletores de nó

Você pode usar seletores de nó e labels de nó para controlar os nós de trabalho nos quais os pods complementares são executados.

Para que um pod seja executado em um nó, o seletor de nós do pod deve ter a mesma chave/valor do label do nó.

Defina nodeSelectors como um par de chave/valor que corresponda ao seletor de nós do pod e ao label do nó de trabalho.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Operador de GPU NVIDIA
  • SMB do Driver CSI
Possíveis equivalentes:
  • Descoberta de Recursos do Nó, use worker.nodeSelector
  • Operador de Rede NVIDIA, use operator.nodeSelectors
  • Operador de GPU AMD, use selector ou controllerManager.nodeSelector
Opcional null {"foo":"bar", "foo2": "bar2"}

O pod só será executado em nós que tenham o label foo=bar ou foo2=bar2.

numOfReplicas numOfReplicas O número de réplicas da implantação do complemento.
Não utilizado por:
  • Plug-in de GPU AMD
  • Operador de GPU NVIDIA
  • Operador de Rede NVIDIA
  • SMB do Driver CSI
Possíveis equivalentes:
  • CoreDNS, use nodesPerReplica
  • Descoberta de Recursos do Nó, use master.replicaCount
  • Operador de GPU AMD, use controllerManager.replicas
Obrigatório 1

Cria uma réplica da implantação do complemento por cluster.

2

Cria duas réplicas da implantação do complemento por cluster.

rollingUpdate rollingUpdate

Controla o comportamento desejado de atualização incremental por maxSurge e maxUnavailable.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Descoberta de Recurso do Nó
  • Operador de Rede NVIDIA
  • SMB do Driver CSI
Possíveis equivalentes:
  • Operador de GPU NVIDIA, use daemonsets.rollingUpdate.maxUnavailable
  • Operador de GPU AMD, use upgradePolicy em devicePlugin, metricsExporter, testRunner, configManager ou draDriver
Opcional null null
tolerations tolerâncias

Você pode usar taints e tolerations para controlar os nós de trabalho nos quais os pods complementares são executados.

Para que um pod seja executado em um nó que tenha uma taint, o pod deve ter uma tolerância correspondente.

Defina tolerations como um par de chave/valor que corresponda à tolerância do pod e à mancha do nó de trabalho.

Formato JSON em texto simples ou codificado em Base64.

Possíveis equivalentes:
  • Descoberta de Recursos do Nó, use master.tolerations e/ou worker.tolerations
  • Operador de GPU NVIDIA, use daemonsets.tolerations
  • Operador de Rede NVIDIA, use operator.tolerations
  • Driver SMB CSI, use controller.tolerations
  • Operador de GPU AMD, usar tolerações em devicePlugin, metricsExporter, testRunner, configManager, draDriver ou controllerManager
Opcional null [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Somente pods que têm essa tolerância podem ser executados em nós de trabalho que têm a mancha tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Como distribuir pods correspondentes entre a topologia fornecida.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Descoberta de Recurso do Nó
  • Operador de GPU NVIDIA
  • Operador de Rede NVIDIA
  • SMB do Driver CSI
  • AMD GPU Operator
Opcional null null
Argumentos de Configuração Específicos para esta Extensão de Cluster
Chave (API e CLI) Nome para Exibição da Chave (Console) Descrição Obrigatório/Opcional Valor Padrão Valor de Exemplo
amd-gpu-device-plugin.ContainerResources recursos do contêiner amd-gpu-device-plugin

Você pode especificar as quantidades de recursos solicitadas pelos contêineres de complementos e definir limites de uso de recursos que os contêineres de complementos não podem exceder.

Formato JSON em texto simples ou codificado em Base64.

Opcional null {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Crie contêineres complementares que solicitem 100 mililitros de CPU e 100 mebibytes de memória. Limite os contêineres complementares a 500 milicores de CPU e 200 mebibytes de memória.

pulse Ativar verificações de integridade

Intervalo de tempo em segundos para que o plug-in atualize o kubelet com o status de integridade do dispositivo.

Defina como 0 para desativar a verificação de integridade.

Opcional 0
Considerações sobre Clusters Grandes

A tabela a seguir descreve considerações para configurar este complemento de cluster em clusters grandes.

Nome do Argumento Número wrt de Atribuições dos Nós Descrição À medida que o tamanho do cluster aumenta Riscos Recomendação
amd-gpu-device-plugin.ContainerResources S

Define solicitações e limites de CPU e memória para os contêineres de Plug-in de GPU AMD.

O plug-in é executado em cada nó de GPU.

O uso total de recursos cresce linearmente com o número de nós de GPU.

As seguintes atividades aumentam:

  • Monitoramento de integridade de GPU
  • Relatório de estado do dispositivo para o kubelet
  • Interações com o runtime do contêiner

Se os recursos forem subdimensionados:

  • O plug-in pode se tornar instável nos nós.
  • As GPUs podem não ser expostas corretamente como recursos amd.com/gpu .
  • Os pods que solicitam GPUs podem permanecer no estado Pending .
  • Os recursos podem ser reportados incorretamente ao programador.

Aumente a memória e a CPU alocadas em cada nó com base nos seguintes fatores:

  • O número de GPUs no nó
  • Intensidade da carga de trabalho

Monitore logs do kubelet e o uso da CPU e da memória do plug-in.

nodeSelectors/affinity S

Controla em quais nós o plug-in é executado usando labels.

Garante que o plug-in seja executado somente em nós de GPU AMD.

Impede agendamento desnecessário em nós somente CPU.

Se nenhum seletor for especificado, o plug-in será executado em todos os nós e desperdiçará recursos.

Se o seletor errado for especificado, o plug-in não será executado nos nós de GPU e as GPUs não ficarão visíveis para o Kubernetes.

Mesmo uma pequena configuração incorreta que afeta de 1 a 2% dos nós pode resultar em centenas de nós configurados incorretamente, disponibilidade inconsistente de GPU e falhas de programação imprevisíveis.

Usar label de nó estrito.

tolerations S

Controla se o plug-in pode ser executado em nós de GPU contaminados.

Se não estiver configurado corretamente, o DaemonSet de Plug-in de GPU AMD poderá falhar ao programar em nós de GPU com taints, evitando que recursos de GPU sejam descobertos e tornando as GPUs indisponíveis para programação de carga de trabalho.

Se as tolerâncias forem configuradas incorretamente, o plug-in não poderá ser executado em nós de GPU e as GPUs se tornarão inutilizáveis.

Certifique-se de que as tolerâncias correspondam às manchas aplicadas aos nós de GPU.

pulse S

Controla a frequência com que o plug-in reporta informações de integridade da GPU ao kubelet.

Uma frequência de relatórios mais alta fornece melhor visibilidade da integridade da GPU, mas gera mais tráfego de kubelet e API.

Uma frequência de relatórios mais baixa reduz a sobrecarga, mas atrasa a detecção de falhas.

Se as atualizações forem muito frequentes, a sobrecarga da CPU em cada nó e a carga do kubelet aumentarão.

Se as atualizações forem muito raras ou desativadas, as informações de integridade da GPU poderão se tornar obsoletas e o scheduler poderá atribuir cargas de trabalho a GPUs não íntegras.

Use um intervalo moderado que equilibre a visibilidade da integridade com a sobrecarga.

Evite pesquisas excessivamente agressivas.

rollingUpdate N

Controla o comportamento de atualização.

Em clusters grandes, muitos nós podem ser atualizados simultaneamente, afetando a disponibilidade da GPU durante os upgrades.

  • Cargas de trabalho de GPU podem ser interrompidas.
  • As GPUs podem estar temporariamente indisponíveis.

Use atualizações contínuas controladas para evitar interrupções generalizadas.

numOfReplicas N

Esse argumento não é usado pelo plug-in de GPU AMD.

Não aplicável Não aplicável Não aplicável