A computação paralela em grande escala, como o treinamento distribuído, é altamente sensível à latência de comunicação entre nós. O acesso remoto direto à memória (RDMA) contorna a pilha de rede do kernel para reduzir essa latência. O add-on do plugin de dispositivo RDMA registra as NICs RDMA em nós Lingjun como recursos estendidos do Kubernetes que os pods podem solicitar.
Modos de uso do RDMA
O plugin de dispositivo RDMA suporta dois modos de dispositivo:
|
Modo |
Descrição |
Limites |
|
shared |
Modo padrão. O dispositivo RDMA é registrado como o recurso |
Não suporta isolamento de dispositivo nem agendamento com reconhecimento de topologia NUMA. |
|
exclusive |
O dispositivo RDMA é registrado como o recurso |
Para obter informações sobre os limites, consulte Use RDMA exclusive mode. |
O RDMA suporta os três modos de uso a seguir. O modo compartilhado (shared) suporta os modos de rede hostNetwork e non-hostNetwork, enquanto o modo exclusivo (exclusive) suporta apenas o modo de rede non-hostNetwork.
|
Modo de uso |
Modo de rede |
Requisito de IPv6 do Lingjun |
Cenários |
|
hostNetwork + shared (padrão) |
|
Não obrigatório |
Maior desempenho de rede, com vários pods compartilhando uma NIC. |
|
non-hostNetwork + shared |
|
Obrigatório |
Endereços IP de pod independentes, com vários pods compartilhando uma NIC. |
|
non-hostNetwork + exclusive |
|
Obrigatório |
Uso exclusivo de uma NIC física por pod, com isolamento de dispositivo e agendamento com reconhecimento de topologia NUMA. |
Pré-requisitos
Crie um cluster ACK gerenciado Pro e adicione nós Lingjun. Para mais informações, consulte Lingjun node pools.
Para o modo non-hostNetwork, crie o cluster bare metal Lingjun com IPv6 como a versão IP da rede de computação. Caso contrário, a configuração do RDMA não terá efeito.
Instale o add-on do plugin de dispositivo RDMA
Faça login no ACK console. No painel de navegação à esquerda, escolha Clusters.
Na página Clusters, clique em seu cluster. No painel de navegação à esquerda, escolha Add-ons.
-
Na página Add-ons, clique em Install. Encontre o add-on ack-rdma-device-plugin, configure-o conforme as instruções e conclua a instalação.
Item de configuração
Descrição
Enable RDMA network support (non-hostNetwork mode)
Valores válidos:
False (desmarcado): Apenas pods no modo hostNetwork podem usar a rede RDMA.
True (selecionado): Pods no modo non-hostNetwork podem usar a rede RDMA.
Certifique-se de que o cluster bare metal Lingjun associado ao cluster ACK usa IPv6 e ative esta opção. Caso contrário, a configuração do RDMA não terá efeito.
customResourceNameO nome do recurso RDMA. Valor padrão:
rdma/hca. Suporta nomes personalizados.
Verifique a instalação
Após a conclusão da instalação, execute o comando a seguir e verifique se o plugin de dispositivo RDMA está em execução conforme o esperado:
kubectl get ds ack-rdma-dp-ds -n kube-system
Saída esperada:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ack-rdma-dp-ds 2 2 2 2 2 <none> xxh
Execute o comando a seguir e verifique se o nó expõe o recurso rdma/hca:
kubectl describe node <node-name> | grep rdma/hca
No modo shared, a saída esperada é
rdma/hca: 1k.No modo exclusive, a saída esperada é
rdma/hca: 4. O número real de dispositivos varia de acordo com o tipo de instância.
Notas de uso
Ambos os modos usam o mesmo nome de recurso
rdma/hca, o qual você pode personalizar. Os rótulos de nó diferenciam os modos.Antes de alternar o modo, certifique-se de que nenhum pod no nó esteja usando o recurso
rdma/hca. Caso contrário, a alternância invalida as alocações de dispositivo dos pods existentes. Alterne o modo na configuração do pool de nós.Para ver os limites do modo exclusive, consulte Use RDMA exclusive mode.