Questo documento descrive come creare cluster Google Kubernetes Engine (GKE) personalizzati che utilizzano i tipi di macchine A2 Standard (A100 da 40 GB) o A2 Ultra (A100 da 80 GB) ottimizzati per gli acceleratori per supportare i carichi di lavoro di intelligenza artificiale (AI) e machine learning (ML). A2 è una serie di macchine GPU generiche, che forniscono risorse di computing indipendenti progettate per le attività di AI mainstream, come l'addestramento di modelli più piccoli e l'inferenza su un singolo host.
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 A2, 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 la sezione Scegliere un'opzione di consumo.
Per GKE, tieni presente le seguenti informazioni aggiuntive quando scegli un'opzione di consumo:
- Per ulteriori informazioni su Avvio flessibile (anteprima) e GKE, consulta la sezione Informazioni sull'ottenibilità delle GPU con Avvio flessibile.
- 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 solo quando utilizzi le VM spot se configuri il posizionamento compatto.
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 le macchine A2, i nodi GPU devono utilizzare la versione del driver NVIDIA 450.80.02 o successive.
Limitazioni
Le seguenti limitazioni si applicano alle macchine A2 come GPU generiche:
- GPU multi-istanza: sebbene A2 (GPU A100) supporti il partizionamento hardware, la GPU multi-istanza (NVIDIA) non è supportata quando si utilizza GKE Autopilot. Per i carichi di lavoro che richiedono il partizionamento della GPU A100, devi utilizzare GKE Standard.
Crea l'ambiente GKE
Puoi creare un cluster in modalità Autopilot o Standard.
Autopilot
Per creare un cluster Autopilot, esegui il seguente 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 il seguente 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 GPU A2.
Tieni presente quanto segue:
- I tipi di macchine A2 Standard (
a2-highgpu) richiedono di collegare manualmente i dischi SSD locali ai nodi per utilizzarli come spazio di scratch o per la memorizzazione nella cache. Utilizza il flag--local-ssd-count. - I tipi di macchine A2 Ultra (
a2-ultragpu) includono automaticamente un numero fisso di dischi SSD locali per impostazione predefinita. - Per i carichi di lavoro di addestramento multi-nodo, ti consigliamo di utilizzare una policy di posizionamento compatto per ridurre al minimo la latenza di rete tra i nodi.
Per i carichi di lavoro di addestramento multi-nodo, ti consigliamo anche di abilitare NCCL Fast Socket per migliorare le prestazioni di rete.
A2 Standard (A100 da 40 GB)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-tesla-a100,count=AMOUNT,gpu-driver-version=LATEST \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNTA2 Ultra (A100 da 80 GB)
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-a100-80gb,count=AMOUNT,gpu-driver-version=LATEST \ --placement-type=COMPACT \ --scopes="https://www.googleapis.com/auth/cloud-platform"Sostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.REGION: la regione del 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 pool di nodi.MACHINE_TYPE: il tipo di macchina per i nodi, ad esempioa2-highgpu-1g.AMOUNT: il numero di GPU da collegare a ogni nodo.LOCAL_SSD_COUNT: il numero di volumi SSD locali di cui eseguire il provisioning su ogni nodo.
- I tipi di macchine A2 Standard (
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 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 hai prenotato. Devi utilizzarenvidia-tesla-a100(per A2 Standard) onvidia-a100-80gb(per A2 Ultra).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 rispettive sezioni in Utilizzo delle risorse del 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 da collegare a ogni nodo.