Questo documento spiega come progettare cluster Google Kubernetes Engine (GKE) resilienti e strategie di pianificazione dei workload che ti aiutano a ottenere risorse come GPU, TPU e CPU ad alte prestazioni. Sfruttando Gemini inCloud de Confiance by S3NS e Compute Advisor (anteprima), puoi evitare i pod in attesa e migliorare la pianificazione affidabile dei workload AI.
Questo documento è rivolto ad architetti cloud e amministratori e operatori di piattaforma che gestiscono l'infrastruttura GKE e vogliono ottimizzare la pianificazione e la programmazione della capacità.
Panoramica della flessibilità, dell'efficienza e della disponibilità della capacità di computing su GKE
La pianificazione di Kubernetes si basa sulle richieste di risorse dichiarate. Quando pianifichi acceleratori su larga scala, come GPU o TPU, richieste di risorse rigide possono impedire lo scale up dei cluster se l'hardware specifico non è disponibile. Puoi ottimizzare la disponibilità della capacità su GKE utilizzando le seguenti funzionalità:
- Creazione automatica dei node pool:creazione dinamica di pool di nodi di più famiglie.
- Fallback a livello di workload: tolleranze e selettori di nodi configurati per accettare hardware alternativo.
- Pianificazione geografica e regionale: funzionalità multizona e multiregionale di GKE.
- Gestione delle prenotazioni: utilizzo della capacità pre-acquistata prima di richiedere risorse on demand.
Best practice per flessibilità, efficienza e disponibilità della capacità di computing su GKE
Questa sezione fornisce suggerimenti per aumentare la disponibilità della capacità durante la pianificazione dei workload su GKE. Queste best practice riguardano strategie come la progettazione di requisiti hardware flessibili, la configurazione della creazione automatica dei node pool e l'utilizzo della distribuzione geografica per adattarsi ai vincoli delle risorse. La creazione automatica dei node pool gestisce automaticamente i node pool in base alle specifiche dei pod. Anziché predefinire i node pool, specifica i requisiti delle risorse nei manifest dei pod e lascia che GKE crei i nodi in modo dinamico.
Puoi anche scoprire e implementare le seguenti best practice utilizzando Compute Advisor (anteprima). Per saperne di più, consulta Utilizza Compute Advisor.
Opzioni per aumentare la disponibilità della capacità di computing
Per ottimizzare la disponibilità della capacità, puoi indicare a GKE di evitare di associare i workload a una singola famiglia di macchine statiche o a un tipo di acceleratore. Di seguito sono riportati esempi di come configurare pool di nodi flessibili e regole di affinità dei pod per diverse classi di workload. Le alternative specifiche che scegli dipendono dalle esigenze di risorse della tua applicazione:
Node pool di CPU per uso generico:
- Esempio principale: N4 (per uso generico basata su Intel).
- Alternative di esempio: N4D (AMD EPYC per uso generico), C4 o C3 (Intel per uso generico) o C4D o C3D (AMD EPYC per uso generico).
- Pattern di implementazione: configura le specifiche dei pod con una ComputeClass personalizzata o regole di affinità dei nodi che consentono la pianificazione su più etichette di famiglie di macchine, ad esempio
cloud.google.com/machine-familyin["n4", "n4d", "c4", "c4d"]. Questa configurazione consente a GKE di eseguire il provisioning del pool con capacità disponibile.
Node pool GPU:
- Esempio principale: serie A3 (GPU NVIDIA H100) o serie A4 (GPU NVIDIA B200).
- Alternative di esempio: serie G2 (GPU NVIDIA L4) o livelli di acceleratore alternativi.
- Modello di implementazione: configura pool di nodi o ComputeClass separati per i diversi livelli di GPU. Per i workload di inferenza o di distribuzione che possono essere eseguiti su più generazioni di acceleratori, consenti ai pod di eseguire il fallback ai pool di GPU G2 (L4) o alternativi se il provisioning dell'acceleratore principale è limitato.
Pool di nodi TPU:
- Esempio principale: TPU Ironwood (TPU7x).
- Alternative di esempio: TPU v6 (Trillium) o TPU v5 (v5e o v5p).
- Pattern di implementazione: il provisioning delle sezioni TPU può essere molto limitato. Progetta workload di addestramento con flessibilità a livello di framework (ad esempio, configurazioni JAX o PyTorch che supportano topologie di slice variabili) per eseguire il deployment su slice v6 o v5 quando la capacità di TPU Ironwood (TPU7x) non è disponibile.
La tabella seguente riassume le selezioni principali e le alternative hardware per i diversi tipi di workload:
| Tipo di workload | Esempio di selezione principale | Alternative di esempio | Considerazioni sull'architettura |
|---|---|---|---|
| Workload di sistema o principali | N4 | N4D, C4, C4D, C3, C3D | Copre i pool di hardware Intel e AMD moderni per la creazione automatica dei pool di nodi. |
| Inferenza ed elaborazione con GPU | A3 (H100) o A4 (B200) | G2 (L4) | Sceglie come target in modo flessibile i pool di nodi GPU con costi inferiori o disponibilità più elevata. |
| Addestramento del modello TPU | TPU Ironwood (TPU7x) | TPU v6, TPU v5 (v5e o v5p) | Utilizza topologie flessibili per la pianificazione basata su sezioni. |
Implementa la creazione automatica dei pool di nodi e le classi di computing
Per ottimizzare la disponibilità della capacità, combina la creazione automatica pool di nodi con ComputeClasses. Il seguente elenco include le best practice:
Definisci le classi ComputeClass:crea risorse ComputeClass che specificano un elenco con priorità di famiglie di macchine, tipi di GPU o modelli di provisioning. GKE tenta di eseguire il provisioning dei nodi utilizzando la configurazione con la priorità più alta disponibile nella classe. Un elenco di fallback con priorità ti aiuta in modo significativo a ottenere le risorse richieste dai tuoi workload. Ad esempio, per impedire a GKE di tornare alle macchine per uso generico quando un acceleratore specializzato preferito non è disponibile, aggiungi l'impostazione
whenUnsatisfiable: DoNotScaleUpalla configurazione di ComputeClass. Per saperne di più, consulta Controlla gli attributi dei nodi con scalabilità automatica con classi di computing personalizzate.Attiva la migrazione attiva (
optimizeRulePriority: true) per i workload stateless o tolleranti alle interruzioni: configura la migrazione attiva nella tua ComputeClass in modo che GKE isoli, svuoti e sostituisca automaticamente i nodi di riserva con la serie di macchine con priorità più alta quando la capacità viene ripristinata in quella località.Utilizza StorageClass dinamiche per il fallback tra generazioni: in GKE versione 1.35.3-gke.1290000 e successive, quando un ComputeClass comprende serie solo Hyperdisk (come C4, C4D e N4) e serie Persistent Disk (come N2 e N2D), configura i workload stateful in modo che GKE selezioni in modo dinamico un tipo di disco compatibile. Per farlo, utilizza una StorageClass con selezione automatica del tipo di disco (
parameters.type: dynamic) e l'impostazionevolumeBindingMode: WaitForFirstConsumer.Fai riferimento alle classi ComputeClasses nelle specifiche dei pod: nelle specifiche dei pod del workload, utilizza l'etichetta
cloud.google.com/compute-classper scegliere come target la tua classe ComputeClass personalizzata anziché una famiglia di macchine o un tipo di GPU specifici. Per saperne di più, consulta Richiedi una classe ComputeClass in un workload.Definisci più tolleranze: se non utilizzi ComputeClasses, utilizza le regole di affinità dei nodi nelle specifiche dei pod che consentono una gamma di famiglie di macchine (ad esempio
cloud.google.com/machine-familyin["n4", "n4d", "c4", "c4d"]). Per saperne di più, consulta Configura la creazione automatica dei node pool.
Flessibilità geografica e multiregionale su GKE
Per aumentare la disponibilità della capacità, esegui il deployment di cluster GKE che si estendono su più zone o esegui architetture multi-cluster:
Cluster multizona: assicurati che i pool di nodi siano configurati per la scalabilità automatica in tutte le zone disponibili in una regione.
Federazione di cluster multiregionali: per job asincroni di grandi dimensioni (come l'inferenza batch offline o l'addestramento distribuito), esegui il deployment di un orchestratore multi-cluster (come Kueue o Cluster Director) per mettere in coda i workload a livello globale e inviarli a una regione con capacità disponibile.
Pod in esecuzione su VM spot:esegui workload interrompibili su VM spot aggiungendo tolleranze e indicando a GKE di distribuire la capacità in eccesso in zone diverse.
Best practice aggiuntive per flessibilità, efficienza e disponibilità della capacità di computing in GKE
Oltre alla diversificazione dell'hardware, incorpora queste best practice di GKE per ottimizzare il successo della scalabilità dei cluster:
- Utilizza i buffer di capacità: prenota in modo proattivo la capacità dei nodi di riserva in modo che i workload AI con priorità elevata possano essere pianificati immediatamente senza attendere il provisioning di nuovi nodi. Puoi utilizzare buffer di capacità dichiarativi con la strategia del buffer attivo per i workload GPU e TPU in modo che il gestore della scalabilità automatica dei cluster mantenga automaticamente la capacità di riserva.
- Utilizza l'avvio flessibile con il provisioning in coda: per i job di addestramento di modelli di AI e batch di grandi dimensioni, utilizza l'avvio flessibile con il provisioning in coda, che si integra con Kueue e Dynamic Workload Scheduler. L'avvio flessibile con provisioning in coda esegue l'allocazione atomica dei nodi in modalità "tutto o niente", il che evita errori di scale up parziale del cluster. Per maggiori informazioni, consulta Esegui un workload su larga scala con l'avvio flessibile con provisioning in coda.
- Attiva lo streaming di immagini e il precaricamento delle immagini container:per immagini container AI di grandi dimensioni (come le immagini PyTorch o TensorFlow che superano i 10 GB), attiva lo streaming di immagini GKE o utilizza dischi di avvio secondari per il precaricamento delle immagini. Questa configurazione riduce il tempo di preparazione dei nodi, consentendo ai nodi di cui è stato appena eseguito il provisioning di iniziare a eseguire i workload in pochi secondi. Per saperne di più, consulta Utilizza lo streaming di immagini per eseguire il pull delle immagini container e Utilizza i dischi di avvio secondari per precaricare dati o immagini container.
- Imposta la policy di località del gestore della scalabilità automatica dei cluster su
ANY: configura i node pool (soprattutto per le VM spot o con avvio flessibile) con la policy di localitàANY. Questa impostazione indica al gestore della scalabilità automatica dei cluster di cercare la capacità richiesta in tutte le zone specificate. Il gestore della scalabilità automatica dei cluster trova la capacità bilanciando il numero di nodi. Per saperne di più, consulta la panoramica del gestore della scalabilità automatica dei cluster. - Ottimizza l'utilizzo dell'acceleratore con la condivisione della GPU:per i workload che non richiedono una GPU dedicata, utilizza la condivisione del tempo della GPU, le GPU multi-istanza (MIG) o NVIDIA MPS per consentire a più container di condividere un singolo acceleratore. Questo approccio ottimizza la capacità effettiva tra i pool di nodi. Per saperne di più, consulta Informazioni sulle strategie di condivisione delle GPU in GKE.
Utilizza Compute Advisor
Compute Advisor è un'interfaccia basata sull'AI nella consoleCloud de Confiance , basata su Gemini, che ti aiuta a progettare architetture resilienti ed economiche per GKE.
Compute Advisor fornisce indicazioni sulla disponibilità quasi in tempo reale per VM con avvio flessibile e VM spot, verificando al contempo le policy e le quote delle risorse della tua organizzazione prima del deployment. Compute Advisor non fornisce indicazioni sulla disponibilità per i workload che richiedono risorse on demand.
Per accedere a Gemini nella console Cloud de Confiance , completa i seguenti passaggi:
-
Nella console Cloud de Confiance , vai alla pagina Panoramica.
-
Nella sezione Progetta la tua infrastruttura con Compute Advisor, invia un prompt. Gemini inizia a generare una risposta.
-
Per generare suggerimenti sull'architettura, esegui uno dei seguenti prompt di esempio in Compute Advisor. Quando fai clic sui pulsanti Esegui prompt in Compute Advisor, il caricamento della console Cloud de Confiance potrebbe richiedere più di 15 secondi:
Strategia generale per gli acceleratori:
Caso d'uso: utilizza questo prompt per analizzare gli indicatori di capacità regionali e ricevere suggerimenti su tipi di macchine, zone e strategie di pianificazione di riserva durante la progettazione delle configurazioni dei cluster.
Configure a GKE cluster to improve chances of obtaining scarce GPU or TPU capacity.Flessibilità geografica e fallback:
Caso d'uso: utilizza questo prompt quando progetti architetture multi-cluster o sistemi di coda dei job globali (ad esempio con Kueue) per spostare l'esecuzione dei workload tra le regioni in base alla disponibilità delle risorse.
Configure multi-region fallbacks and geographic scheduling on GKE to increase GPU availability.Consumo delle prenotazioni con priorità:
Caso d'uso: utilizza questo prompt per generare pattern di configurazione YAML per le regole di affinità dei pod e di scalabilità automatica che danno la priorità alla capacità di prenotazione.
Configure GKE autoscaling rules and Pod specs to prioritize consuming active reservations before scaling into on-demand pools.ComputeClasses per l'assegnazione della priorità di riserva:
Caso d'uso: utilizza questo prompt per generare il manifest YAML per una CustomResourceDefinition ComputeClass che dà la priorità alle GPU ad alte prestazioni, ma include fallback di livello inferiore per garantire la pianificazione dei workload.
Define a ComputeClass manifest for GKE to prioritize A3 GPU nodes with automatic fallbacks to G2 (L4) GPUs.Creazione automatica dei pool di nodi per la diversificazione:
Caso d'uso: utilizza questo prompt per scrivere il manifest YAML per i limiti delle risorse del gestore della scalabilità automatica dei cluster GKE e le regole di affinità dei pod che consentono a NAP di eseguire il provisioning automatico di nodi GPU o CPU alternativi.
Configure GKE node pool auto-creation to diversify machine families and prevent pending pods when regional accelerator capacity is constrained.
Passaggi successivi
- Progetta e ottimizza i cluster GKE con Compute Advisor
- Configura la creazione automatica dei node pool
- Risolvi i problemi relativi alla scalabilità automatica orizzontale dei pod