Quali sono alcune best practice per l'utilizzo delle istanze Spot EC2 con Amazon EKS?

Ultimo aggiornamento: 22/12/2021

Desidero utilizzare le istanze Spot di Amazon Elastic Compute Cloud (Amazon EC2) con Amazon Elastic Kubernetes Service (Amazon EKS). Quali sono le best practice?

Breve descrizione

Di seguito sono riportate alcune best practice per l'utilizzo delle istanze Spot Amazon EC2 con Amazon EKS:

  • Non utilizzare le istanze Spot per lavori a esecuzione prolungata o applicazioni stateful.
  • Utilizza i gruppi di nodi gestiti con le istanze Spot.
  • Aggiungi più tipi di istanze ai gruppi di nodi.
  • Utilizza AWS Node Termination Handler per gruppi di nodi autogestiti.

Risoluzione

Non utilizzare le istanze Spot per processi a esecuzione prolungata o applicazioni stateful

La breve durata di un'istanza Spot può causare terminazioni indesiderate di lavori di lunga durata. Può anche influire sulle applicazioni stateful perché le applicazioni stateful non tollerano gli arresti. Utilizza invece le istanze on demand per processi a esecuzione prolungata.

Utilizzo di gruppi di nodi gestiti con istanze Spot

È possibile impostare il tipo di capacità di un gruppo di nodi gestiti come spot. Il gruppo di nodi gestiti configura quindi un gruppo Auto Scaling per l'utilizzo del ribilanciamento della capacità di EC2 Auto Scaling. Quando la funzione di ribilanciamento della capacità di EC2 Auto Scaling è attivata e un nodo Spot riceve un suggerimento di ribilanciamento, Amazon EKS prova a sostituire il nodo Spot.

Una volta pronto il nuovo nodo Spot, Amazon EKS separa e scarica il nodo Spot precedente. Ciò può contribuire a ridurre il rischio di danneggiamento dei volumi Amazon Elastic Block Store (Amazon EBS) o di interruzioni delle connessioni al database.

Aggiunta di più tipi di istanze ai gruppi di nodi

Ogni pool di istanze Spot è costituito da una capacità di istanza EC2 inutilizzata per un tipo di istanza specifico in una zona di disponibilità specifica. Quando un gruppo di nodi prova a eseguire il provisioning di un nuovo nodo, utilizza uno dei tipi di istanza definiti nella sua configurazione. Se i tipi di istanza non dispongono di capacità Spot in nessuna delle zone di disponibilità, allora il gruppo di nodi non riesce a dimensionare e si riduce.

Per evitare questo problema, aumenta il numero di tipi di istanze simili nel gruppo di nodi. Ad esempio, per un tipo di istanza m5.large (2 vCPU/8 GiB di RAM), aggiungi istanze con gli stessi valori di vCPU e RAM, ad esempio m5a.large, m5n.large e m4.large.

Utilizzo di AWS Node Termination Handler per gruppi di nodi autogestiti

AWS Node Termination Handler (dal sito Web GitHub) viene implementato in un cluster Amazon EKS come implementazione o DaemonSet. AWS Node Termination Handler aggiunge le funzionalità mancanti ai gruppi di nodi autogestiti. Aiuta i gruppi di nodi autogestiti a rilevare e rispondere in modo appropriato agli eventi di manutenzione EC2, agli avvisi di interruzione Spot, agli eventi di scalabilità dei gruppi Auto Scaling e ai ribilanciamenti delle zone di disponibilità. Utilizza l'opzione Processore di code per aggiungere tutte le funzionalità di AWS Node Termination Handler al gruppo di nodi autogestiti.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?