Descoberta de Recurso do Nó

Ao ativar o complemento de cluster de Descoberta de Recurso de Nó, você pode especificar os pares de chave/valor a seguir 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:
  • 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 numOfReplications 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 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:
  • 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 topologiaSpreadConstraints

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
master.tolerations tolerâncias para mestre nfd Tolerâncias personalizadas a serem aplicadas aos pods principais da NFD. Opcional
[{"key":"node-role.kubernetes.io/master","operator":"Equal","effect":"NoSchedule"},{"key":"node-role.kubernetes.io/control-plane","operator":"Equal","effect":"NoSchedule"}]
master.affinity afinidade para mestre nfd Regras de afinidade de nó para programar pods NFD. Opcional
{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/master","operator":"In","values":[""]}]}},{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/control-plane","operator":"In","values":[""]}]}}]}}
master.config config para mestre nfd

Configuração mestre adicional para mesclar em nfd-master.conf.

Formato YAML ou JSON em texto sem formatação.

Opcional null
master.resources recursos para mestre nfd Solicitações e limites de recursos para o contêiner mestre de NFD. Formato JSON em texto sem formatação. Opcional null
master.replicaCount replicaCount para mestre nfd Contagem de réplicas para a implantação principal de NFD. Opcional null
master.extraArgs extraArgs p/ mestre nfd

Argumentos de linha de comando adicionais para o contêiner mestre de NFD.

Formato de array JSON em texto sem formatação.

Opcional null
master.annotations anotações para pods mestre nfd Anotações a serem mescladas no modelo de pod mestre da NFD. Opcional null
priorityClassName priorityClassName para implantações nfd PriorityClassName para as implantações de NFD mestre e gc. Opcional null
worker.config config para colaborador nfd

Configuração de colaborador adicional para mesclar em nfd-worker.conf.

Formato YAML ou JSON em texto sem formatação.

Opcional null
worker.resources recursos para colaborador nfd Solicitações e limites de recursos para o contêiner do colaborador de NFD. Formato JSON em texto sem formatação. Opcional null
worker.tolerations tolerâncias para trabalhador nfd Tolerâncias adicionais a serem anexadas aos pods de colaborador da NFD. Opcional null
worker.nodeSelector nodeSelector para trabalhador nfd Rótulos do seletor de nós a serem mesclados no DaemonSet do trabalhador de NFD. Opcional null
worker.priorityClassName priorityClassName para colaborador nfd PriorityClassName para o DaemonSet do colaborador da NFD. Opcional null
worker.extraArgs extraArgs p/ worker nfd

Argumentos de linha de comando adicionais para o contêiner de worker de NFD.

Formato de array JSON em texto sem formatação.

Opcional null
worker.annotations anotações para pods de worker nfd Anotações a serem mescladas no modelo de pod do colaborador da NFD. Opcional null
master.customConfigData Dados de configuração principal NFD personalizada

Forneça conteúdo para o ConfigMap node-feature-discovery-master-custom-conf.

Se fornecido, ele será montado automaticamente.

Opcional ""
worker.customConfigData Dados de configuração do colaborador NFD personalizado

Forneça conteúdo para o ConfigMap node-feature-discovery-worker-custom-conf.

Se fornecido, ele será montado automaticamente.

Opcional ""
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
master.tolerations S

Controla se os pods mestres de Descoberta de Recurso de Nó podem ser executados em nós de plano de controle ou infraestrutura contaminados.

  • Garante que o mestre de Descoberta de Recurso de Nó seja executado em nós de infraestrutura ou plano de controle estáveis.
  • Impede que o mestre seja executado em nós de trabalho com alta atividade de carga de trabalho.
  • Melhora a confiabilidade da rotulagem de nós em todo o cluster.

Se este argumento estiver configurado incorretamente:

  • O pod mestre pode permanecer no estado Pending porque não pode tolerar as manchas do nó.
  • O pod mestre pode ser executado nos nós de trabalho e se tornar instável.
  • As atualizações de label em todo o cluster podem estar atrasadas ou inconsistentes.
  • Sempre inclua tolerâncias para manchas de plano de controle.
  • Certifique-se de que o mestre seja executado em nós estáveis.
  • Combine tolerâncias com regras de afinidade para controlar o posicionamento do pod.
master.affinity S

Define o posicionamento de nó preferencial para pods principais de Descoberta de Recurso de Nó.

  • Mantém o mestre em nós dedicados de plano de controle ou infraestrutura.
  • Reduz a interferência de cargas de trabalho de aplicativos.
  • Melhora a consistência das operações de rotulagem de nós.

Se este argumento estiver configurado incorretamente:

  • O mestre pode ser executado nos nós de trabalho.
  • Várias réplicas podem ser executadas no mesmo nó, reduzindo a alta disponibilidade.
  • O label do nó pode ser mais lento ou inconsistente.
  • Use regras de afinidade para preferir nós de plano de controle ou infraestrutura.
  • Adicione regras antiafinidade ao usar várias réplicas.
  • Trate o posicionamento mestre como parte do design do plano de controle do cluster.
master.customConfigData N

Ativa a configuração personalizada para o mestre de Descoberta de Recurso de Nó.

A configuração controla como os recursos do nó são processados e rotulados. Afeta:

  • O número de labels gerados
  • A frequência de atualizações de rótulos

Se este argumento estiver configurado incorretamente:

  • Rótulos excessivos ou incorretos podem ser gerados.
  • Alterações frequentes de label podem aumentar a carga no servidor de API do Kubernetes.
  • A detecção de recursos pode ser inconsistente entre os nós.
  • Mantenha a configuração mínima.
  • Configure apenas os recursos necessários.
  • Valide a configuração em um pequeno subconjunto de nós antes de aplicá-la em todo o cluster.
worker.customConfigData N

Controla a lógica personalizada de detecção de recursos em cada nó.

O auxiliar de Descoberta de Recurso de Nó é executado em cada nó como um DaemonSet. Portanto, qualquer lógica de detecção adicional é executada em cada nó.

A lógica de detecção personalizada pode afetar:

  • Uso da CPU do nó
  • Frequência de rotulagem
  • Consistência de label em todo o cluster

Se este argumento estiver configurado incorretamente:

  • O uso da CPU pode aumentar nos nós.
  • Os rótulos podem estar incorretos ou inconsistentes.
  • Atualizações frequentes de label podem aumentar a pressão sobre o servidor de API do Kubernetes.
  • A programação da carga de trabalho pode ser afetada.
  • Mantenha a configuração do trabalhador leve.
  • Evite lógica de detecção com uso intensivo de recursos.
  • Valide os labels antes de ativar a configuração em todo o cluster.
  • Monitore o uso de recursos do nó.