Questo documento descrive come creare cluster Google Kubernetes Engine (GKE) personalizzati che utilizzano la serie di macchine N1 per uso generico con GPU NVIDIA T4 o V100 collegate per supportare i carichi di lavoro di intelligenza artificiale (AI) e machine learning (ML). Le macchine N1 con GPU collegate sono considerate GPU generiche, che forniscono risorse di calcolo indipendenti progettate per le attività di AI mainstream come l'inferenza da piccola a media e le applicazioni ad alta intensità di grafica.
GKE fornisce una singola superficie della piattaforma per eseguire un insieme diversificato di carichi di lavoro per la tua organizzazione, riducendo l'onere operativo della gestione di più piattaforme.
Per creare un cluster GKE ottimizzato per l'AI che utilizza la serie di macchine N1, procedi nel seguente modo:
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare e gestire un cluster GKE, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Amministratore Kubernetes Engine (
roles/container.admin) - Amministratore Compute (
roles/compute.admin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Scegli un'opzione di consumo e ottieni la capacità
Scegli un'opzione di consumo. Fai la tua scelta in base a come vuoi ottenere e utilizzare le risorse GPU. Per ulteriori informazioni, consulta Scegli un'opzione di consumo.
Ottieni la capacità. Scopri come ottenere la capacità per la tua opzione di consumo.
Requisiti
Per un cluster GKE ottimizzato per l'AI che utilizza N1, i nodi devono utilizzare la versione 535 o successive del driver NVIDIA.
Limitazioni
Le seguenti limitazioni si applicano a N1 come serie di macchine GPU generiche:
- GPU multi-istanza (NVIDIA): la serie di macchine N1 non supporta le GPU multi-istanza (NVIDIA).
- NCCL Fast Socket: non puoi utilizzare NCCL Fast Socket con le macchine N1 su GKE. Sebbene le macchine N1 supportino la comunicazione multi-nodo, utilizzano la rete VPC standard. Per l'addestramento distribuito su larga scala che richiede il massimo throughput di rete, ti consigliamo di utilizzare una serie di macchine GPU in cluster, come A3 High o A3 Mega (che utilizzano GPUDirect TCPX) o A3 Ultra e A4 (che utilizzano GPUDirect RDMA).
Crea l'ambiente GKE
Puoi creare un cluster in modalità Autopilot o Standard.
Autopilot
Per creare un cluster Autopilot, esegui questo comando:
gcloud container clusters create-auto CLUSTER_NAME \
--region=REGION
Sostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.REGION: la regione del tuo cluster.
Standard
Crea un cluster Standard e un pool di nodi GPU:
Per creare un cluster Standard, esegui questo comando:
gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --enable-ip-aliasSostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.REGION: la regione del tuo cluster.
Crea il pool di nodi. Dopo aver creato il cluster, puoi aggiungere un pool di nodi con macchine N1 con GPU T4 o V100 collegate.
Per creare un pool di nodi, utilizza questo comando:
N1 con GPU T4 collegate
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-tesla-t4,count=AMOUNT,gpu-driver-version=LATEST \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTN1 con GPU V100 collegate
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-tesla-v100,count=AMOUNT,gpu-driver-version=LATEST \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTSostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.REGION: la regione del tuo cluster.ZONE: una o più zone all'interno della regione in cui sono disponibili le GPU richieste, ad esempious-central1-a. Questo è obbligatorio quando si utilizza il posizionamento compatto.NODE_POOL_NAME: il nome del tuo pool di nodi.MACHINE_TYPE: il tipo di macchina N1 per i nodi, ad esempion1-standard-4.AMOUNT: il numero di GPU da collegare a ogni nodo.LOCAL_SSD_COUNT: il numero di volumi SSD locali da eseguire il provisioning su ogni nodo.
Connettiti al tuo cluster
Connettiti al cluster in modo da poter eseguire i comandi kubectl nelle sezioni successive:
gcloud container clusters get-credentials CLUSTER_NAME \
--region=REGION
Sostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.REGION: la regione del tuo cluster.
Per ulteriori informazioni, consulta Installare kubectl e configurare l'accesso al cluster.
Configura il manifest del pod (solo Autopilot)
Se hai creato un cluster Autopilot, devi selezionare le GPU appropriate nei manifest dei pod in modo che GKE esegua il provisioning dell'hardware.
Specifica il tipo di GPU scelto e la prenotazione specifica utilizzando i selettori di nodi:
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"Sostituisci quanto segue:
ACCELERATOR: l'acceleratore che vuoi utilizzare. Utilizzanvidia-tesla-t4per le GPU T4 onvidia-tesla-v100per le GPU V100.RESERVATION_NAME: il nome della prenotazione della capacità di Compute Engine. Per utilizzare le prenotazioni condivise o blocchi e sottoblocchi specifici di prenotazioni, consulta le sezioni pertinenti in Utilizzo delle risorse del percorso zonale riservato.
Aggiungi le seguenti risorse al container che richiede le GPU:
containers: - name: my-container resources: limits: nvidia.com/gpu: AMOUNTSostituisci
AMOUNTcon il numero di GPU da collegare a ogni nodo.