En esta página, se muestra cómo usar el complemento Fast Socket de bibliotecas de comunicación colectiva (NCCL) de NVIDIA para ejecutar cargas de trabajo más eficientes en los clústeres de Google Kubernetes Engine (GKE).
Los clústeres de Autopilot no son compatibles con Fast Socket de NCCL.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
Limitaciones
- Se aplican las limitaciones de Compute Engine.
- Se aplican las limitaciones de gVNIC.
- Fast Socket de NCCL solo es compatible con los grupos de nodos que tienen aceleradores de hardware habilitados.
Requisitos
- Tus grupos de nodos deben tener gVNIC habilitado para usar Fast Socket de NCCL.
- Los nodos de GKE deben usar una imagen de nodo de Container-Optimized OS.
- Tus clústeres deben ejecutar la versión 1.25.2-gke.1700 de GKE o una posterior.
Crea un clúster
Crea un clúster nuevo:
gcloud container clusters create CLUSTER_NAME \
--cluster-version=VERSION \
--region=COMPUTE_REGION
Reemplaza lo siguiente:
CLUSTER_NAME
es el nombre del clúster nuevo.VERSION
: la versión de GKE, que debe ser 1.25.2-gke.1700 o posterior. También puedes usar la marca--release-channel
para seleccionar un canal de versiones. El canal de versiones debe tener una versión predeterminada de 1.25.2-gke.1700 o posterior.COMPUTE_REGION
: es la región de Compute Engine del clúster. Para los clústeres zonales, usa--zone=COMPUTE_ZONE
.
Habilita Fast Socket de NCCL
Crea un grupo de nodos que use el complemento de Fast Socket de NCCL. También puedes actualizar un grupo de nodos existente con 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
Reemplaza lo siguiente:
NODEPOOL_NAME
: el nombre del grupo de nodos nuevoCLUSTER_NAME
: el nombre del clústerACCELERATOR_TYPE
: Es el tipo de acelerador de GPU que usas. Por ejemplo,nvidia-tesla-t4
.ACCELERATOR_COUNT
: es la cantidad de GPU por nodo.MACHINE_TYPE
: Es el tipo de máquina que deseas usar. Fast Socket de NCCL no es compatible con los tipos de máquina con optimización de memoria.
Instala los controladores de GPU de NVIDIA
Sigue las instrucciones en Instala controladores de dispositivos de GPU de NVIDIA para instalar los controladores de dispositivos de NVIDIA necesarios en tus nodos.
Verifica que Fast Socket de NCCL esté habilitado
Para verificar que Fast Socket de NCCL esté habilitado, consulta los pods del sistema de Kubernetes:
kubectl get pods -n kube-system
El resultado es similar a este:
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
En este resultado, la cantidad de Pods debe ser igual a la cantidad de nodos en el grupo de nodos.
Inhabilita Fast Socket de NCCL
Para inhabilitar Fast Socket de NCCL, ejecuta el siguiente comando:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-fast-socket
El nodo existente todavía tiene instalado el complemento. Debes cambiar el tamaño del grupo de nodos de forma manual para migrar las cargas de trabajo a nodos nuevos.
Soluciona problemas
Para solucionar problemas de gVNIC, consulta Soluciona problemas de NIC virtual de Google.
¿Qué sigue?
- Usa el registro de políticas de red para registrar cuándo las políticas de red del clúster permiten o rechazan las conexiones a los Pods.