Informazioni sui buffer di capacità

I buffer di capacità ti aiutano a ridurre la latenza di avvio dei pod per i workload di Google Kubernetes Engine (GKE) consentendoti di gestire in modo proattivo la capacità di riserva nel cluster. Prenotando la capacità di riserva in anticipo, contribuisci a garantire che i nodi abbiano la capacità disponibile quando necessario, riducendo il tempo necessario per pianificare nuovi pod durante gli eventi di scalabilità.

Questo documento spiega come funzionano i buffer di capacità. Per scoprire come abilitare e utilizzare i buffer di capacità, consulta Configurare i buffer di capacità.

Quando utilizzare un buffer di capacità

Utilizza un buffer di capacità per le applicazioni sensibili alla latenza di avvio e che devono scalare rapidamente. Quando si verificano aumenti improvvisi del traffico, un buffer di capacità fornisce capacità di cui è stato eseguito il provisioning preventivo.

I buffer di capacità offrono i seguenti vantaggi:

  • Riduci al minimo la latenza di scalabilità: utilizzando i buffer di capacità, i workload critici vengono inseriti immediatamente nei nodi di cui è stato eseguito il provisioning preventivo. I buffer di capacità contribuiscono a eliminare il ritardo associato all'avvio delle VM e al pull delle immagini, aiutandoti a mantenere obiettivi di livello di servizio (SLO) rigorosi durante i picchi di traffico.
  • Provisioning eccessivo conveniente: i buffer di capacità ti aiutano a mantenere una rete di sicurezza di dimensioni fisse. Per i workload su larga scala, questo approccio è spesso più conveniente rispetto ad altri metodi di provisioning eccessivo (ad esempio, ridurre i target di utilizzo di HorizontalPodAutoscaler (HPA)), che possono aumentare la capacità inattiva in modo lineare man mano che il cluster cresce.
  • Soddisfa i requisiti dei workload:hai il controllo completo sulle dimensioni del buffer di capacità. Le opzioni includono l'incorporamento di daemonset o dati personalizzati e il controllo del precaricamento delle immagini e dell'avvio preliminare dei workload.

Consigliamo i buffer di capacità per i workload sensibili alla latenza che richiedono una scalabilità rapida, come l'inferenza AI, le applicazioni di vendita al dettaglio durante gli eventi di vendita o i server di gioco durante i picchi di attività dei giocatori.

Non consigliamo i buffer di capacità per i workload che non sono sensibili alla latenza di avvio, ad esempio i job di elaborazione batch. Per questi workload, il provisioning eccessivo delle risorse non offre alcun vantaggio.

Come funzionano i buffer di capacità

Implementa un buffer di capacità utilizzando una risorsa personalizzata CapacityBuffer di Kubernetes per definire un buffer di capacità di riserva. Il gestore della scalabilità automatica dei cluster GKE monitora le risorse CapacityBuffer e le considera come domanda in attesa per garantire la disponibilità della capacità di riserva. Se il cluster non ha capacità sufficiente per soddisfare le richieste di risorse definite nel buffer, il gestore della scalabilità automatica dei cluster esegue il provisioning di nodi aggiuntivi.

Quando un workload ad alta priorità aumenta, GKE lo pianifica immediatamente sulla capacità disponibile nel buffer. Questa pianificazione immediata si applica al numero di repliche o alla quantità di risorse riservate nel buffer, evitando il ritardo tipico associato al provisioning dei nodi. Quando un workload utilizza un'unità buffer, il gestore della scalabilità automatica dei cluster esegue il provisioning di un nuovo nodo per riempire il buffer.

Un buffer attivo fornisce VM in esecuzione per la scalabilità a bassa latenza dei workload che rientrano nella capacità riservata. Poiché i nodi sono già pronti, forniscono la latenza più bassa possibile per il consumo iniziale del buffer durante un evento di scalabilità.

CRD CapacityBuffer

Per configurare un buffer di capacità, crea una definizione di risorsa personalizzata (CRD) CapacityBuffer. Puoi configurare il buffer di capacità in base a criteri diversi:

  • Repliche fisse: specifica un numero fisso di pod buffer. Questa configurazione è il modo più semplice per creare un buffer di dimensioni note.
  • Basato sulla percentuale: definisci le dimensioni del buffer come percentuale di un workload scalabile esistente, ad esempio un deployment. Le dimensioni del buffer vengono regolate dinamicamente durante la scalabilità del workload di riferimento.
  • Limiti delle risorse: definisci la quantità totale di CPU e memoria che il buffer deve riservare. Il controller calcola il numero di pod buffer da creare in base alle richieste di risorse di un modello di pod di riferimento.

Per ulteriori informazioni, consulta la documentazione di riferimento della CRD CapacityBuffer.

Requisiti e limitazioni

I buffer di capacità presentano i seguenti requisiti e limitazioni:

  • I buffer di capacità sono disponibili per i cluster GKE che eseguono la versione 1.35.2-gke.1842000 o successive.
  • I buffer di capacità supportano solo i workload che utilizzano un modello di fatturazione basato sui nodi. I buffer di capacità non supportano i workload che utilizzano il modello di fatturazione basato sui pod.
  • Ti consigliamo di abilitare il provisioning automatico dei nodi nei cluster. Il provisioning automatico dei nodi consente al gestore della scalabilità automatica dei cluster di creare nuovi pool di nodi in base alle richieste di risorse in CapacityBuffer. Se non abiliti il provisioning automatico dei nodi, il gestore della scalabilità automatica dei cluster esegue solo la scalabilità dei pool di nodi esistenti.

Passaggi successivi