AMD GPU Operator

Ao ativar o complemento de cluster do Operador de GPU AMD, você pode passar os seguintes pares de chave/valor como argumentos.

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:
  • NVIDIA GPU Operator
  • SMB CSI Driver
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 numOfReplications O número de réplicas da implantação do complemento.
Não utilizado por:
  • Plug-in de GPU AMD
  • NVIDIA GPU Operator
  • NVIDIA Network Operator
  • SMB CSI Driver
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 Atualização incremental

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:
  • Node Feature Discovery
  • NVIDIA Network Operator
  • SMB CSI Driver
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 topologiaSpreadConstraints

Como distribuir pods correspondentes entre a topologia fornecida.

Formato JSON em texto simples ou codificado em Base64.

Não utilizado por:
  • Node Feature Discovery
  • NVIDIA GPU Operator
  • NVIDIA Network Operator
  • SMB CSI Driver
  • AMD GPU Operator
Opcional null null
Argumentos de Configuração Específicos para esta Extensão de Cluster

Observe os seguintes pontos ao definir argumentos de configuração para o complemento de cluster do Operador de GPU AMD:

  • Os nomes ConfigMap do Test Runner e do Device Config Manager nos valores de amostra referem-se a ConfigMaps que você pré-criou no namespace Operador de GPU AMD.
  • Para ativar o driver DRA, defina draDriver.enable como true e devicePlugin.enableDevicePlugin como false na mesma atualização de complemento.
  • Para imagePullPolicy, devicePluginImagePullPolicy e nodeLabellerImagePullPolicy, os valores suportados são Always, IfNotPresent e Never.
  • Os arrays de tolerância fornecidos por meio desses parâmetros são mesclados com os padrões do complemento. Uma tolerância fornecida substitui uma tolerância padrão pela mesma chave e efeito; caso contrário, ela é anexada.
Chave (API e CLI) Nome para Exibição da Chave (Console) Descrição Obrigatório/Opcional Valor Padrão Valor de Exemplo
skipNodeFeatureDiscoveryDependencyCheck skipNodeFeatureDiscoveryDependencyCheck Controla se o complemento ignora a verificação de dependência do Node Feature Discovery. Opcional false true
selector seletor Seleciona os nós do Kubernetes gerenciados pelo Operador de GPU AMD. Opcional {"feature.node.kubernetes.io/amd-gpu":"true"} {"node.kubernetes.io/instance-type":"BM.GPU.MI300X.8"}
devicePlugin Plugin do dispositivo Configura o plug-in de dispositivo de GPU AMD e o rotulador de nós. Opcional {"enableDevicePlugin":true,"devicePluginImagePullPolicy":"IfNotPresent","devicePluginTolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"enableNodeLabeller":true,"nodeLabellerImagePullPolicy":"IfNotPresent","nodeLabellerTolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"kubeletSocketPath":"/var/lib/kubelet/device-plugins","hostNetwork":false,"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1}} {"enableDevicePlugin":true,"devicePluginImagePullPolicy":"Always","devicePluginTolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"devicePluginArguments":{"resource_naming_strategy":"single"},"enableNodeLabeller":true,"nodeLabellerImagePullPolicy":"Always","nodeLabellerTolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"nodeLabellerArguments":["compute-memory-partition","compute-partitioning-supported","memory-partitioning-supported"],"kubeletSocketPath":"/var/lib/kubelet/device-plugins","hostNetwork":true,"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1}}
metricsExporter métricasExportador Configura a coleta e a exposição de métricas de GPU AMD. Opcional {"enable":true,"serviceType":"ClusterIP","port":5000,"nodePort":32500,"imagePullPolicy":"IfNotPresent","tolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"hostNetwork":false,"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1},"rbacConfig":{"enable":false,"disableHttps":false,"staticAuthorization":{"clientName":"","enable":false}},"prometheus":{"serviceMonitor":{"enable":false,"interval":"30s","honorLabels":true,"honorTimestamps":false}}} {"enable":true,"serviceType":"NodePort","port":5001,"nodePort":32501,"imagePullPolicy":"IfNotPresent","config":{},"tolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"hostNetwork":true,"selector":{"feature.node.kubernetes.io/amd-gpu":"true"},"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1},"rbacConfig":{"enable":true,"disableHttps":false},"prometheus":{"serviceMonitor":{"enable":false,"interval":"30s","honorLabels":true,"honorTimestamps":false}},"resource":{"limits":{"cpu":"1","memory":"1Gi"},"requests":{"cpu":"100m","memory":"128Mi"}},"podAnnotations":{"prometheus.io/scrape":"true"},"podResourceAPISocketPath":"/var/lib/kubelet/pod-resources","serviceAnnotations":{"prometheus.io/scrape":"true"}}
testRunner testRunner Configura a validação da integridade da GPU AMD e o teste de diagnóstico nos nós selecionados. Opcional {"enable":false,"imagePullPolicy":"IfNotPresent","tolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"logsLocation":{"hostPath":"/var/log/amd-test-runner","logsExportSecrets":[],"mountPath":"/var/log/amd-test-runner"},"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1}} {"enable":true,"imagePullPolicy":"IfNotPresent","config":{"name":"test-runner-config-map"},"logsLocation":{"hostPath":"/var/log/amd-test-runner","mountPath":"/var/log/amd-test-runner","logsExportSecrets":[]},"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1},"tolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"selector":{"feature.node.kubernetes.io/amd-gpu":"true"}}
configManager configManager Configura perfis de particionamento de GPU AMD através do Device Config Manager. Opcional {"enable":false,"imagePullPolicy":"IfNotPresent","configManagerTolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1}} {"enable":true,"imagePullPolicy":"IfNotPresent","config":{"name":"config-manager-config"},"selector":{"feature.node.kubernetes.io/amd-gpu":"true"},"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1},"configManagerTolerations":[{"key":"amd-dcm","operator":"Equal","value":"up","effect":"NoExecute"}]}
draDriver Dra.Driver Configura a Alocação de Recursos Dinâmicos do Kubernetes para GPUs AMD. Opcional {"enable":false,"imagePullPolicy":"IfNotPresent","tolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1}} {"enable":true,"imagePullPolicy":"IfNotPresent","tolerations":[{"key":"amd.com/gpu","operator":"Equal","value":"present","effect":"NoSchedule"}],"cmdLineArguments":{},"selector":{"feature.node.kubernetes.io/amd-gpu":"true"},"upgradePolicy":{"upgradeStrategy":"RollingUpdate","maxUnavailable":1}}
controllerManager gerentecontrolador Configura a implantação do controlador do Operador de GPU AMD. Opcional {"replicas":1,"resources":{"limits":{"cpu":"1000m","memory":"1Gi"},"requests":{"cpu":"100m","memory":"256Mi"}},"imagePullPolicy":"Always","nodeSelector":{},"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/control-plane","operator":"Exists"}]}}]}},"tolerations":[{"key":"amd-gpu-unhealthy","operator":"Exists","effect":"NoSchedule"},{"key":"node-role.kubernetes.io/master","operator":"Equal","effect":"NoSchedule"},{"key":"node-role.kubernetes.io/control-plane","operator":"Equal","effect":"NoSchedule"}],"simEnable":false} {"replicas":2,"resources":{"requests":{"cpu":"120m","memory":"192Mi"}},"imagePullPolicy":"IfNotPresent","nodeSelector":{"kubernetes.io/os":"linux"},"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":10,"preference":{"matchExpressions":[{"key":"kubernetes.io/os","operator":"In","values":["linux"]}]}}]}},"tolerations":[{"key":"validation.amd.com/controller","operator":"Exists","effect":"NoSchedule"}],"simEnable":false}