View a markdown version of this page

Riduci la latenza per le applicazioni con tempi di avvio lunghi utilizzando pool caldi con gruppi di nodi gestiti - Amazon EKS

Contribuisci a migliorare questa pagina

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Riduci la latenza per le applicazioni con tempi di avvio lunghi utilizzando pool caldi con gruppi di nodi gestiti

Quando le applicazioni hanno tempi di inizializzazione o avvio lunghi, gli eventi di scalabilità orizzontale possono causare ritardi: i nuovi nodi devono avviarsi completamente e unirsi al cluster prima di poter pianificare i Pod su di essi. Questa latenza può influire sulla disponibilità delle applicazioni durante picchi di traffico o eventi di scalabilità rapida. I pool caldi risolvono questo problema mantenendo un pool di istanze EC2 preinizializzate che hanno già completato il processo di avvio. Durante un evento di scalabilità orizzontale, le istanze passano dal pool caldo direttamente al cluster, evitando le lunghe fasi di inizializzazione e riducendo in modo significativo il tempo necessario alla disponibilità di nuova capacità. Per ulteriori informazioni, consulta Ridurre la latenza per le applicazioni con tempi di avvio lunghi utilizzando pool caldi nella Guida per l'utente di Amazon EC2 Auto Scaling.

I gruppi di nodi gestiti di Amazon EKS supportano i pool caldi di Amazon EC2 Auto Scaling. Un pool caldo mantiene istanze EC2 preinizializzate insieme al gruppo Auto Scaling che può unirsi rapidamente al cluster durante gli eventi di scale-out. Le istanze nel pool caldo hanno già completato il processo di inizializzazione dell'avvio e possono essere mantenute nello stato, o. Stopped Running Hibernated

Amazon EKS gestisce i pool caldi durante l'intero ciclo di vita del gruppo di nodi utilizzando il ruolo AWSServiceRoleForAmazonEKSNodegroup collegato al servizio per creare, aggiornare ed eliminare le risorse del pool caldo.

Come funziona

Quando configuri un pool caldo, Amazon EKS crea un pool caldo EC2 Auto Scaling collegato al gruppo Auto Scaling del gruppo di nodi. Le istanze vengono avviate nel pool caldo, completano il processo di inizializzazione dell'avvio e rimangono nello stato configurato (Running, Stopped o) finché non sono necessarie. Hibernated Durante gli eventi di scalabilità orizzontale, le istanze passano dal pool caldo al gruppo Auto Scaling, completano il processo di inizializzazione di Amazon EKS per entrare a far parte del cluster e diventano disponibili per la pianificazione dei pod. Con il riutilizzo delle istanze abilitato, le istanze possono tornare al pool caldo durante gli eventi di scale-in.

Importante

Configura sempre le pool calde tramite l'API Amazon EKS utilizzando create-nodegroup oupdate-nodegroup-config. Non modificare manualmente le impostazioni del pool caldo utilizzando l'API Auto Scaling di EC2, poiché ciò può causare conflitti con la gestione delle risorse di Amazon EKS.

Considerazioni

Importante

Prima di configurare i pool caldi, esamina i prerequisiti e le limitazioni in Warm pools for Amazon EC2 Auto Scaling nella Amazon EC2 Auto Scaling User Guide. Non tutti i tipi di istanze o configurazioni sono supportati AMIs.

  • Autorizzazioni IAM: il ruolo AWSServiceRoleForAmazonEKSNodegroup collegato al servizio (creato automaticamente con il primo gruppo di nodi gestito) include le necessarie autorizzazioni di gestione del pool caldo.

  • Limitazioni AMI: le piscine calde non supportano la personalizzazione AMIs. È necessario utilizzare Amazon EKS ottimizzato AMIs.

  • Limitazioni di Bottlerocket: se si utilizza Bottlerocket AMIs, lo stato del Hibernated pool non è supportato. Usa solo gli stati del Stopped poolRunning. Inoltre, la reuseOnScaleIn funzionalità non è supportata con Bottlerocket AMIs.

  • Supporto per l'ibernazione: lo stato del Hibernated pool è supportato solo su tipi di istanze specifici. Consulta i prerequisiti di ibernazione nella Guida per l'utente di Amazon EC2 per i tipi di istanze supportati.

  • Impatto sui costi: la creazione di una piscina calda quando non è necessaria può comportare costi inutili.

  • Pianificazione della capacità: dimensionate la piscina calda in base a modelli di scalabilità per bilanciare costi e disponibilità. Inizia con il 10-20% della capacità di picco prevista.

  • Rete VPC: assicurate un numero sufficiente di indirizzi IP sia per le istanze del gruppo Auto Scaling che per le istanze warm pool.

Configura le piscine calde

È possibile configurare i pool caldi durante la creazione di un nuovo gruppo di nodi gestiti o aggiornare un gruppo di nodi gestiti esistente per aggiungere il supporto per pool caldi.

Parametri di configurazione

  • abilitato — (booleano) Indica l'intenzione di collegare un pool caldo al gruppo di nodi gestito. Necessario per abilitare il supporto per piscine calde.

  • maxGroupPreparedCapacità: (numero intero) Numero massimo di istanze totali tra pool caldo e gruppo Auto Scaling combinati.

  • minSize — (numero intero) Numero minimo di istanze da mantenere nel pool caldo. Default: 0.

  • poolState — (stringa) Stato per le istanze del pool caldo. Default: Stopped.

  • reuseOnScaleIn — (boolean) Indica se le istanze ritornano nel pool caldo durante gli eventi di scalabilità orizzontale anziché terminarli. Default: false. Non AMIs supportato con Bottlerocket.

Utilizzo della AWS CLI

È possibile configurare un pool caldo durante la creazione di un gruppo di nodi gestito o aggiungerne uno a un gruppo di nodi esistente.

Crea un gruppo di nodi con una piscina calda

aws eks create-nodegroup \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --node-role arn:aws:iam::111122223333:role/AmazonEKSNodeRole \ --subnets subnet-12345678 subnet-87654321 \ --region us-east-1 \ --scaling-config minSize=2,maxSize=10,desiredSize=3 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true

Aggiungi un pool caldo a un gruppo di nodi esistente

aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true

Aggiornamento della configurazione

Aggiorna le impostazioni della piscina calda in qualsiasi momento utilizzandoupdate-nodegroup-config. Le istanze esistenti della piscina calda non vengono modificate immediatamente; le nuove impostazioni si applicano alle istanze che entrano nella piscina calda dopo l'aggiornamento.

aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=10,minSize=3,poolState=Running,reuseOnScaleIn=true

Per disabilitare il pool caldo collegato al tuo gruppo di nodi, imposta: enabled=false

aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=false

Risorse aggiuntive