En este documento, se describe cómo puedes crear clústeres personalizados de Google Kubernetes Engine (GKE) que usan la serie de máquinas optimizadas para aceleradores G2 (NVIDIA L4) o G4 (NVIDIA RTX PRO 6000) para admitir tus cargas de trabajo de inteligencia artificial (IA) y aprendizaje automático (AA). G2 y G4 son series de máquinas de GPU generales, que proporcionan recursos de procesamiento independientes diseñados para tareas de IA convencionales, como la inferencia de pequeña a mediana escala y las aplicaciones de alto contenido gráfico.
GKE proporciona una sola plataforma para ejecutar un conjunto diverso de cargas de trabajo para tu organización, lo que reduce la carga operativa de administrar varias plataformas.
Para crear un clúster de GKE optimizado para IA con G2 o G4, haz lo siguiente:
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 the
gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando
gcloud components updatepara obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos de este documento.
Roles obligatorios
Para obtener los permisos que necesitas para crear y administrar un clúster de GKE, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
- Administrador de Kubernetes Engine (
roles/container.admin) - Administrador de Compute (
roles/compute.admin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Elige una opción de consumo y obtén capacidad
Elige una opción de consumo. Toma una decisión según cómo deseas obtener y usar los recursos de GPU. Para obtener más información, consulta Elige una opción de consumo.
En el caso de GKE, considera la siguiente información adicional cuando elijas una opción de consumo:
- Para obtener más información sobre el inicio flexible (vista previa) y GKE, consulta Acerca de la disponibilidad de GPU con inicio flexible.
- El inicio flexible usa la posición compacta de mejor esfuerzo. Para examinar tu topología, consulta Visualiza la topología física de los nodos en tu clúster de GKE.
- Solo puedes obtener información de la topología cuando usas VMs Spot si configuras la posición compacta.
Obtén capacidad. Obtén información para obtener capacidad para tu opción de consumo.
Requisitos
Para crear un clúster de GKE optimizado para IA que use G2 o G4, asegúrate de cumplir con los siguientes requisitos:
- Versión de GKE: Las máquinas G4 (RTX PRO 6000) requieren la versión 1.32.4-gke.1698000 o posterior de GKE.
- Controladores de GPU: Tus nodos de GPU deben usar la versión 535 o posterior del controlador NVIDIA.
Limitaciones
Las siguientes limitaciones se aplican a G2 y G4 como series de máquinas de GPU generales:
- SSD locales: Los tipos de máquinas G2 y G4 no incluyen discos SSD locales de forma predeterminada. Debes conectarlos de forma manual si es necesario.
- Fast Socket de NCCL: No puedes usar Fast Socket de NCCL con máquinas G2 o G4 en GKE. Si bien las máquinas G2 y G4 admiten la comunicación de varios nodos, usan redes de VPC estándar. Para el entrenamiento distribuido a gran escala que requiere un máximo de capacidad de procesamiento de red, te recomendamos que uses la serie de máquinas de GPU en clúster, como A3 High o A3 Mega (que usan GPUDirect TCPX) o A3 Ultra y A4 (que usan GPUDirect RDMA).
Crea el entorno de GKE
Puedes crear un clúster en modo Autopilot o Standard.
Autopilot
Para crear un clúster de Autopilot, ejecuta el siguiente comando:
gcloud container clusters create-auto CLUSTER_NAME \
--region=REGION
Reemplaza lo siguiente:
CLUSTER_NAME: El nombre de tu clúster.REGION: La región de tu clúster.
Estándar
Crea un clúster de Standard y un grupo de nodos de GPU:
Para crear un clúster de Standard, ejecuta el siguiente comando:
gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --enable-ip-aliasReemplaza lo siguiente:
CLUSTER_NAME: El nombre de tu clúster.REGION: La región de tu clúster.
Crea el grupo de nodos. Después de crear el clúster, puedes agregar un grupo de nodos con G2 o G4. Para las cargas de trabajo de varios nodos que usan G2 (L4) o G4 (RTX PRO 6000), te recomendamos que uses una política de posición compacta para minimizar la latencia de red entre los nodos.
Para crear un grupo de nodos, usa el siguiente comando:
G2 (NVIDIA L4)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-l4,count=AMOUNT,gpu-driver-version=LATEST \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTG4 (NVIDIA RTX PRO 6000)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-rtx-pro-6000,count=AMOUNT,gpu-driver-version=LATEST \ --disk-type=hyperdisk-balanced \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTEstación de trabajo virtual (vWS) G4
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-rtx-pro-6000-vws,count=AMOUNT,gpu-driver-version=LATEST \ --disk-type=hyperdisk-balanced \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTReemplaza lo siguiente:
NODE_POOL_NAME: es el nombre de tu grupo de nodos.CLUSTER_NAME: El nombre de tu clúster.REGION: La región de tu clúster.ZONE: Una o más zonas dentro de tu región que tienen las GPU solicitadas disponibles, por ejemplo,us-central1-a. Esto es obligatorio cuando se usa la posición compacta.MACHINE_TYPE: El tipo de máquina para tus nodos, por ejemplo,g2-standard-4para máquinas G2 yg4-standard-48para máquinas G4.AMOUNT: La cantidad de GPU que se conectarán a cada nodo.LOCAL_SSD_COUNT: es la cantidad de volumenes SSD locales que se aprovisionarán en cada nodo.
Conéctate a tu clúster.
Conéctate a tu clúster para poder ejecutar los comandos kubectl en las siguientes secciones:
gcloud container clusters get-credentials CLUSTER_NAME \
--region=REGION
Reemplaza lo siguiente:
CLUSTER_NAME: El nombre de tu clúster.REGION: La región de tu clúster.
Para obtener más información, consulta Instala kubectl y configura el acceso al clúster.
Configura tus manifiestos de Pods (solo Autopilot)
Si creaste un clúster de Autopilot, debes seleccionar las GPU adecuadas en tus manifiestos de Pods para que GKE aprovisione el hardware.
Especifica el tipo de GPU elegido y la reserva específica con selectores de nodos:
spec: nodeSelector: cloud.google.com/gke-accelerator: ACCELERATOR cloud.google.com/gke-gpu-driver-version: latest # Optional: Include if using reserved capacity cloud.google.com/reservation-name: RESERVATION_NAME cloud.google.com/reservation-affinity: "specific"Reemplaza lo siguiente:
ACCELERATOR: El acelerador que reservaste. Debes usarnvidia-l4(para G2),nvidia-rtx-pro-6000(para G4) onvidia-rtx-pro-6000-vws(para G4 con estación de trabajo virtual).RESERVATION_NAME: El nombre de la reserva de capacidad de Compute Engine. Para consumir reservas compartidas o bloques y subbloques específicos de reservas, consulta las secciones respectivas en Consume recursos zonales reservados.
Agrega los siguientes recursos al contenedor que solicita GPU:
containers: - name: my-container resources: limits: nvidia.com/gpu: AMOUNTReemplaza
AMOUNTpor la cantidad de GPU que se conectarán a cada nodo.