Questo documento descrive come creare cluster Google Kubernetes Engine (GKE) ottimizzati per l'AI che utilizzano le serie di macchine ottimizzate per gli acceleratori G2 (NVIDIA L4) o G4 (NVIDIA RTX PRO 6000) per supportare i workload di intelligenza artificiale (AI) e machine learning (ML). G2 e G4 sono serie di macchine GPU generiche, che forniscono risorse di calcolo indipendenti progettate per le attività di AI mainstream, come l'inferenza di piccole e medie dimensioni e le applicazioni con un utilizzo elevato di grafica. Oltre ai tipi di macchine con una o più GPU, la serie di macchine G4 supporta le GPU virtuali (vGPU) sui tipi di macchine con meno di una GPU:
g4-standard-6(un ottavo di GPU)g4-standard-12(un quarto di GPU)g4-standard-24(metà di una GPU)
GKE fornisce una singola piattaforma per eseguire un insieme diversificato di workload per la tua organizzazione, riducendo il carico operativo della gestione di più piattaforme.
Per creare un cluster GKE ottimizzato per l'AI con G2 o G4, completa i seguenti passaggi:
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Per 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 comando
gcloud components update. 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) - Compute Admin (
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 la sezione Scegliere un'opzione di consumo.
Per GKE, tieni presente le seguenti informazioni aggiuntive quando scegli un'opzione di consumo:
- Per saperne di più sull'avvio flessibile (anteprima) e GKE, consulta Informazioni sull'ottenimento di GPU con avvio flessibile.
- L'avvio flessibile utilizza il posizionamento compatto con il criterio del "best effort". Per esaminare la topologia, consulta Visualizzare la topologia fisica dei nodi nel cluster GKE.
- Puoi ottenere informazioni sulla topologia quando utilizzi le VM spot solo se configuri il posizionamento compatto.
Ottenere capacità. Scopri come ottenere capacità per l'opzione di consumo.
Requisiti
Per creare un cluster GKE ottimizzato per l'AI che utilizza G2 o G4, assicurati di soddisfare i seguenti requisiti:
- Versione GKE:le macchine G4 (NVIDIA RTX PRO 6000) richiedono le seguenti versioni GKE minime:
- Modalità Standard:
- Tipi di macchine con una o più GPU:
1.34.0-gke.1662000o versioni successive - Tipi di macchine con meno di una GPU (
g4-standard-6,g4-standard-12eg4-standard-24):- 1.35:
1.35.8-gke.1518000o versioni successive - 1.36 o versioni successive:
1.36.4-gke.1082000o versioni successive
- 1.35:
- Tipi di macchine con una o più GPU:
- Modalità Autopilot:
- Tipi di macchine con una o più GPU:
1.34.1-gke.1829001o versioni successive - Tipi di macchine con meno di una GPU (
g4-standard-6,g4-standard-12eg4-standard-24):- 1.35:
1.35.8-gke.1518000o versioni successive - 1.36 o versioni successive:
1.36.4-gke.1082000o versioni successive
- 1.35:
- Tipi di macchine con una o più GPU:
- Modalità Standard:
- Driver della GPU:
- I nodi G2 (NVIDIA L4) devono utilizzare la versione del driver NVIDIA
535o successive. - I nodi G4 (NVIDIA RTX PRO 6000) devono utilizzare la versione
580o successive del driver NVIDIA.
- I nodi G2 (NVIDIA L4) devono utilizzare la versione del driver NVIDIA
Limitazioni
Le seguenti limitazioni si applicano alle serie di macchine G2 e G4 come GPU generiche:
- SSD locali:i tipi di macchine G2 e G4 non includono dischi SSD locali per
impostazione predefinita. Se necessario, devi allegarli manualmente. Il tipo di macchina
g4-standard-6(un ottavo di una GPU) non supporta le SSD locali. - NCCL Fast Socket:non puoi utilizzare NCCL Fast Socket con macchine G2 o G4 su GKE. Sebbene le macchine G2 e G4 supportino la comunicazione multi-nodo, utilizzano il networking VPC standard. Per l'addestramento distribuito su larga scala che richiede il massimo throughput di rete, ti consigliamo di utilizzare la 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).
- Tipi di macchine G4 con meno di una GPU:per
g4-standard-6,g4-standard-12eg4-standard-24:- Non puoi utilizzare le immagini del nodo Ubuntu.
- Non puoi utilizzare GPU multi-istanza, NVIDIA MPS o time-sharing della GPU.
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 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 cluster.
Crea il pool di nodi. Dopo aver creato il cluster, puoi aggiungere un pool di nodi con G2 o G4. Per i workload multi-nodo che utilizzano G2 (L4) o G4 (RTX PRO 6000), consigliamo di utilizzare una policy di posizionamento compatto per ridurre al minimo la latenza di rete tra i nodi.
Per creare un pool di nodi, utilizza il seguente 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_COUNTWorkstation virtuale (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_COUNTSostituisci quanto segue:
NODE_POOL_NAME: il nome del pool di nodi.CLUSTER_NAME: il nome del tuo cluster.REGION: la regione del cluster.ZONE: una o più zone all'interno della tua regione in cui sono disponibili le GPU richieste, ad esempious-central1-a. Questo è necessario quando si utilizza il posizionamento compatto.MACHINE_TYPE: il tipo di macchina per i nodi, ad esempiog2-standard-4per le macchine G2,g4-standard-48per una macchina G4 con una sola GPU og4-standard-6,g4-standard-12og4-standard-24per i tipi di macchine G4 con meno di una GPU (con il tipo di acceleratorenvidia-rtx-pro-6000).AMOUNT: il numero di GPU da collegare a ogni nodo. Se utilizzi un tipo di macchina G4 con meno di una GPU (g4-standard-6,g4-standard-12og4-standard-24) og4-standard-48(una GPU), devi impostareAMOUNTsu1.LOCAL_SSD_COUNT: il numero di volumi SSD locali da provisionare su ogni nodo. Ometti il flag--local-ssd-countse utilizzi il tipo di macchinag4-standard-6, perchég4-standard-6non supporta gli SSD locali.
Connessione al tuo cluster
Connettiti al cluster per 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 cluster.
Per saperne di più, consulta Installare kubectl e configurare l'accesso al cluster.
Configura i manifest dei 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 hai prenotato. Devi utilizzarenvidia-l4(per G2),nvidia-rtx-pro-6000(per G4) onvidia-rtx-pro-6000-vws(per G4 con workstation virtuale).RESERVATION_NAME: il nome della prenotazione di capacità di Compute Engine. Per utilizzare le prenotazioni condivise o blocchi e sottoblocchi specifici di prenotazioni, consulta le sezioni pertinenti in Utilizzo di risorse di percorso zonale riservate.
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 che il container deve utilizzare. Per richiedere un tipo di macchina G4 con meno di una GPU (g4-standard-6,g4-standard-12og4-standard-24) in un cluster Autopilot, devi utilizzare unComputeClasspersonalizzato che specifichi il tipo di macchina e devi impostarenvidia.com/gpusu1. Per istruzioni, vedi Richiedere tipi di macchina G4 con meno di una GPU.