Plug-in de GPU NVIDIA
Ao ativar o complemento de cluster do Plug-in de GPU NVIDIA, você pode passar os seguintes pares de chave/valor como argumentos.
Observe que, para garantir que as cargas de trabalho em execução nos nós de trabalho de GPU NVIDIA não sejam interrompidas inesperadamente, recomendamos que você escolha a versão do complemento de Plug-in de GPU NVIDIA a ser implantada, em vez de especificar que deseja que a Oracle atualize o complemento automaticamente.
| 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:
Possíveis equivalentes:
|
Opcional | nulo | nulo |
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 Formato JSON em texto simples ou codificado em Base64. Não utilizado por:
Possíveis equivalentes:
|
Opcional | nulo | {"foo":"bar", "foo2": "bar2"}O pod só será executado em nós que tenham o label |
numOfReplicas |
numOfReplicas | O número de réplicas da implantação do complemento. Não utilizado por:
Possíveis equivalentes:
|
Obrigatório | 1Cria uma réplica da implantação do complemento por cluster. |
2Cria 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:
Possíveis equivalentes:
|
Opcional | nulo | nulo |
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 Formato JSON em texto simples ou codificado em Base64. Possíveis equivalentes:
|
Opcional | nulo | [{"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 |
topologySpreadConstraints |
topologySpreadConstraints |
Como distribuir pods correspondentes entre a topologia fornecida. Formato JSON em texto simples ou codificado em Base64. Não utilizado por:
|
Opcional | nulo | nulo |
| Chave (API e CLI) | Nome para Exibição da Chave (Console) | Descrição | Obrigatório/Opcional | Valor Padrão | Valor de Exemplo |
|---|---|---|---|---|---|
deviceIdStrategy
|
Estratégia de ID do Dispositivo |
Qual estratégia usar para transmitir IDs de dispositivo ao runtime subjacente. Uma das seguintes:
|
Opcional |
uuid
|
|
deviceListStrategy
|
Estratégia da Lista de Dispositivos |
Qual estratégia usar para passar a lista de dispositivos para o runtime subjacente. Valores suportados:
Há suporte para vários valores, em uma lista separada por vírgulas. |
Opcional |
envvar
|
|
driverRoot
|
Raiz do driver | O caminho raiz para a instalação do driver NVIDIA. | Opcional |
/
|
|
failOnInitError
|
FailOnInitError |
Se o plug-in falhará se for encontrado um erro durante a inicialização. Quando definido como |
Opcional |
true
|
|
migStrategy
|
Estratégia MIG |
Qual estratégia usar para expor dispositivos MIG (GPU com várias instâncias) em GPUs que os suportam. Uma das seguintes:
|
Opcional |
none
|
|
nvidia-gpu-device-plugin.ContainerResources
|
recursos do contêiner nvidia-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 | nulo |
{"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. |
passDeviceSpecs
|
Informar Especificações do Dispositivo | Se os caminhos e as permissões desejadas do nó do dispositivo devem ser especificados para qualquer dispositivo NVIDIA que esteja sendo alocado ao contêiner. | Opcional |
false
|
|
useConfigFile
|
Usar arquivo de configuração de ConfigMap |
Se um arquivo de configuração deve ser usado para configurar o Plug-in do Dispositivo Nvidia para Kubernetes. O arquivo de configuração é derivado de um ConfigMap. Se definido como O ConfigMap é referenciado pelo daemonset |
Opcional |
false
|
Exemplo de nvidia-device-plugin-config ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: nvidia-device-plugin-config
namespace: kube-system
data:
config.yaml: |
version: v1
flags:
migStrategy: "none"
failOnInitError: true
nvidiaDriverRoot: "/"
plugin:
passDeviceSpecs: false
deviceListStrategy: envvar
deviceIDStrategy: uuidA 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 |
|---|---|---|---|---|---|
nvidia-gpu-device-plugin.ContainerResources
|
S |
Define solicitações e limites de CPU e memória para pods de Plug-in de GPU NVIDIA. |
O plug-in é executado em cada nó de GPU como um DaemonSet, portanto, o uso total de recursos aumenta com o número de nós de GPU. Nós GPU adicionais aumentam:
|
Se os recursos forem subdimensionados:
|
|
affinity / nodeSelectors / tolerations
|
S |
Controla os nós nos quais os pods de Plug-in de GPU NVIDIA são executados. |
|
Se estes argumentos estiverem configurados incorretamente:
|
|
topologySpreadConstraints
|
N |
Controla como os pods de Plug-in de GPU NVIDIA são distribuídos entre nós e domínios de disponibilidade. |
As restrições de distribuição de topologia ajudam a manter uma distribuição uniforme em clusters e clusters de vários domínios com pools de nós de GPU heterogêneos. |
Se as restrições de distribuição de topologia não estiverem configuradas:
|
Use restrições de distribuição de topologia para clusters de GPU grandes que abrangem vários domínios de disponibilidade ou contêm pools de nós de GPU heterogêneos. |
numOfReplicas
|
N |
Controla o número de réplicas dos componentes que suportam o dimensionamento baseado em réplica. |
O Plug-in de GPU NVIDIA é executado como um DaemonSet com um pod em cada nó de GPU elegível. Não é dimensionado alterando uma contagem de réplicas. |
Não aplicável | Não aplicável |
rollingUpdate
|
N |
Controla como os pods do Plug-in de GPU NVIDIA são atualizados. |
Em clusters grandes, uma atualização pode afetar muitos nós de GPU e reduzir temporariamente a disponibilidade de GPU. |
|
|
failOnInitError
|
S |
Controla o comportamento do plug-in quando a inicialização falha. |
As falhas de inicialização se tornam mais propensas a ocorrer em algum lugar do cluster à medida que o número de nós de GPU aumenta. |
|
|
deviceListStrategy / deviceIdStrategy
|
N |
Controle como os dispositivos de GPU são identificados e expostos a contêineres. |
As estratégias selecionadas afetam a integração de contêiner-tempo de execução e a eficiência de alocação de GPU nos nós de GPU. |
Se configurado incorretamente, os dispositivos GPU podem não ser identificados ou injetados de forma consistente nos contêineres. Isso pode resultar em falhas de carga de trabalho de GPU, atribuições de dispositivo incorretas ou problemas de agendamento nos nós de GPU. |
Configure deviceListStrategy e deviceIdStrategy para corresponder ao runtime do contêiner e ao ambiente de GPU e use a estratégia de identificação de dispositivo uuid padrão, a menos que um caso de uso validado exija o contrário. |
migStrategy
|
N |
Controla como os recursos de GPU de várias instâncias da NVIDIA são expostos ao Kubernetes. |
A GPU de várias instâncias pode melhorar o compartilhamento e a utilização de GPU à medida que o número de cargas de trabalho de GPU aumenta. |
Se este argumento estiver configurado incorretamente:
|
Use GPU de Várias Instâncias somente quando o particionamento de GPU for necessário. |