Nesta página, mostramos como usar o plug-in de Fast Socket da Biblioteca de Comunicação Coletiva da NVIDIA (NCCL, na sigla em inglês) para executar cargas de trabalho mais eficientes nos clusters do Google Kubernetes Engine (GKE).
Os clusters do Autopilot não são compatíveis com o Fast Socket NCCL.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
Limitações
- Limitações do Compute Engine.
- Limitações da gVNIC.
- O NCCL Fast Socket só é compatível com pools de nós que têm aceleradores de hardware ativados.
Requisitos
- Seus pools de nós precisam ter a gVNIC ativada para usar o Fast Socket NCCL.
- Os nós do GKE precisam usar uma imagem de nó do Container-Optimized OS.
- Seus clusters precisam estar executando a versão 1.25.2-gke.1700 ou posterior do GKE.
Crie um cluster
Crie um novo cluster:
gcloud container clusters create CLUSTER_NAME \
--cluster-version=VERSION \
--region=COMPUTE_REGION
Substitua:
CLUSTER_NAME
: o nome do novo cluster;VERSION
: a versão do GKE, que precisa ser 1.25.2-gke.1700 ou posterior. Também é possível usar a sinalização--release-channel
para selecionar um canal de lançamento. O canal de lançamento precisa ter uma versão padrão 1.25.2-gke.1700 ou posterior.COMPUTE_REGION
: a região do Compute Engine para o novo cluster. Para clusters zonais, use--zone=COMPUTE_ZONE
.
Ativar o Fast Socket NCCL
Crie um pool de nós que use o plug-in Fast Socket NCCL. Também é possível
atualizar um pool de nós usando
gcloud container node-pools update
.
gcloud container node-pools create NODEPOOL_NAME \
--accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
--machine-type=MACHINE_TYPE \
--cluster=CLUSTER_NAME \
--enable-fast-socket \
--enable-gvnic
Substitua:
NODEPOOL_NAME
: o nome do novo pool de nós.CLUSTER_NAME
: o nome do cluster.ACCELERATOR_TYPE
: o tipo de acelerador de GPU que você usa. Por exemplo,nvidia-tesla-t4
.ACCELERATOR_COUNT
: o número de GPUs por nó.MACHINE_TYPE
: o tipo de máquina que você quer usar. O Fast Socket NCCL não é compatível com tipos de máquinas com otimização de memória.
Instalar drivers de dispositivo da GPU NVIDIA
Siga as instruções em Como instalar os drivers de dispositivo da GPU NVIDIA para instalar os drivers de dispositivos NVIDIA necessários nos nós.
Verificar se o Fast Socket está ativado
Para verificar se o Fast Socket NCCL está ativado, veja os pods kube-system:
kubectl get pods -n kube-system
O resultado será assim:
NAME READY STATUS RESTARTS AGE
nccl-fastsocket-installer-qvfdw 2/2 Running 0 10m
nccl-fastsocket-installer-rtjs4 2/2 Running 0 10m
nccl-fastsocket-installer-tm294 2/2 Running 0 10m
Nesta saída, o número de pods precisa ser igual ao número de nós no pool de nós.
Desativar o Fast Socket NCCL
Para desativar o Fast Socket NCCL, execute o seguinte comando:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-fast-socket
Os nós atuais ainda têm o plug-in instalado. É preciso redimensionar manualmente o pool de nós para migrar cargas de trabalho para novos nós.
Solução de problemas
Para resolver problemas do gVNIC, consulte Solução de problemas do NIC virtual do Google.
A seguir
- Use a geração de registros de política de rede para gravar quando as conexões com pods são permitidas ou negadas pelas políticas de rede do cluster.