Scelta di un tipo di istanza Amazon EC2 - Amazon EKS

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à.

Scelta di un tipo di istanza Amazon EC2

Amazon EC2 offre un'ampia gamma di tipi di istanze per i nodi worker. Ogni tipo di istanza mette a disposizione diverse capacità di calcolo, memoria, archiviazione e rete ed è raggruppata in una famiglia di istanze in base a tali capacità. Per un elenco delle istanze, consulta la sezione Tipi di istanza disponibili nella Guida per l'utente di Amazon EC2 per le istanze Linux o Tipi di istanza disponibili nella Guida per l'utente di Amazon EC2 per le istanze Windows. Amazon EKS rilascia diverse varianti delle AMI Amazon EC2 per abilitare il supporto. Per assicurarti che il tipo di istanza selezionato sia compatibile con Amazon EKS, prendi in considerazione gli elementi seguenti:

  • Al momento, nessuna AMI Amazon EKS supporta le famiglie g5g e mac.

  • Le AMI Amazon EKS Arm e non accelerate non supportano le famiglie g3, g4, inf e p.

  • Le AMI Amazon EKS accelerate non supportano le famiglie a, c, hpc, m e t.

  • Per le istanze basate su ARM, Amazon Linux 2023 (AL2023) supporta solo tipi di istanze che utilizzano processori Graviton2 o versioni successive. AL2023 non supporta le istanze. A1

Quando scegli i tipi di istanza supportati da Amazon EKS, considera le caratteristiche seguenti per ogni tipo.

Numero di istanze in un gruppo di nodi

In generale, istanze in numero ridotto e di grandi dimensioni sono più convenienti, specialmente se si dispone di molti Daemonsets. Ogni istanza richiede chiamate API al server API, per cui maggiore è il numero di istanze di cui si dispone, maggiore è il carico sul server API.

Sistema operativo

Esamina i tipi di istanza supportati per Linux, Windows e Bottlerocket. Prima di creare istanze Windows, rivedi Abilitazione del supporto di Windows per il cluster Amazon EKS.

Architettura hardware

Hai bisogno di x86 o Arm? Puoi implementare Linux solo su Arm. Prima di implementare le istanze Arm, consulta AMI Amazon Linux Arm ottimizzate per Amazon EKS. Ti servono istanze basate sul Nitro System (Linux o Windows) o con un'elaborazione accelerata? Se hai bisogno di funzionalità accelerate, puoi usare Linux solo con Amazon EKS.

Numero massimo di Pods

Dal momento che a ogni Pod viene assegnato il proprio indirizzo IP, il numero di indirizzi IP supportati da un tipo di istanza è un fattore importante per determinare il numero di Pods che possono essere eseguiti sull'istanza. Per determinare manualmente il numero di Pods supportati da un tipo di istanza, consulta Per ogni tipo di istanza Amazon EC2, Amazon EKS consiglia un numero massimo di Pods.

Nota

Con un'AMI Amazon Linux 2 versione v20220406 o più recente ottimizzata per Amazon EKS, puoi utilizzare un nuovo tipo di istanza senza eseguire l'aggiornamento all'AMI più recente. In questi casi, l'AMI calcola automaticamente il valore max-pods necessario se non è elencato nel file eni-max-pods.txt. Per impostazione predefinita, i tipi di istanza attualmente in anteprima potrebbero non essere supportati da Amazon EKS. I valori max-pods per tali tipi di istanza devono ancora essere aggiunti nel file eni-max-pods.txt dell'AMI.

AWS I tipi di istanze Nitro System supportano opzionalmente un numero significativamente maggiore di indirizzi IP rispetto ai tipi di istanze non Nitro System. Tuttavia, non tutti gli indirizzi IP assegnati ad un'istanza sono disponibili per i Pods. Per assegnare un numero significativamente maggiore di indirizzi IP alle istanze, è necessario che la versione 1.9.0 o successiva del componente aggiuntivo CNI di Amazon VPC sia installata nel cluster e che sia configurata in modo appropriato. Per ulteriori informazioni, consulta Aumentare la quantità di indirizzi IP disponibili per i nodi Amazon EC2. Per assegnare il maggior numero di indirizzi IP alle istanze, è necessario che la versione 1.10.1 o successiva del componente aggiuntivo CNI di Amazon VPC sia installata nel cluster e che si implementi il cluster con la famiglia IPv6.

Famiglia di IP

Per la creazione di un cluster tramite la famiglia IPv4, puoi scegliere qualsiasi tipo di istanza supportata, il che consente al cluster di assegnare indirizzi IPv4 privati ai tuoi Pods e servizi. Se tuttavia desideri impiegare la famiglia IPv6 per il cluster, utilizza i tipi di istanza AWS Nitro System o bare metal. Per le istanze Windows è supportato solo IPv4. Il cluster deve eseguire la versione 1.10.1 o successiva del componente aggiuntivo CNI di Amazon VPC. Per ulteriori informazioni sull'utilizzo di IPv6, consultare IPv6indirizzi per i cluster Pods e services.

Versione del componente aggiuntivo CNI di Amazon VPC in uso

La versione più recente del plug-in CNI di Amazon VPC per Kubernetes supporta i seguenti tipi di istanza. Per sfruttare i tipi più recenti di istanza supportati, potrebbe essere necessario aggiornare la versione del componente aggiuntivo CNI di Amazon VPC. Per ulteriori informazioni, consulta Utilizzo del componente aggiuntivo Amazon VPC CNI plugin for Kubernetes di Amazon EKS. L'ultima versione supporta le funzionalità più recenti per l'utilizzo con Amazon EKS. Le versioni precedenti non supportano tutte le funzionalità. Puoi visualizzare le funzionalità supportate dalle diverse versioni in Changelog su GitHub.

Regione AWS in cui stai creando i tuoi nodi

Non tutti i tipi di istanze sono disponibili in tutte le Regioni AWS.

Utilizzo dei gruppi di sicurezza per i Pods

Se si usano gruppi di sicurezza per i Pods, sono supportati solo tipi specifici di istanza. Per ulteriori informazioni, consulta Gruppi di sicurezza per Pods.

Per ogni tipo di istanza Amazon EC2, Amazon EKS consiglia un numero massimo di Pods

Dal momento che a ogni Pod viene assegnato il proprio indirizzo IP, il numero di indirizzi IP supportati da un tipo di istanza è un fattore importante per determinare il numero di Pods che possono essere eseguiti sull'istanza. Amazon EKS fornisce uno script da scaricare ed eseguire per determinare il numero massimo di Pods consigliato da Amazon EKS per l'esecuzione su ciascun tipo di istanza. Lo script utilizza gli attributi hardware di ogni istanza e le opzioni di configurazione per determinare il numero massimo di Pods. Puoi utilizzare il numero restituito in questi passaggi per abilitare funzionalità quali l'assegnazione di indirizzi IP ai Pods da una sottorete diversa da quella dell'istanza e l'aumento significativo del numero di indirizzi IP dell'istanza. Se utilizzi un gruppo di nodi gestiti con più tipi di istanza, scegli un valore in grado di gestire tutti i tipi di istanza.

  1. Esegui il download di uno script che puoi utilizzare per calcolare il numero massimo di Pods per ogni tipo di istanza.

    curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/files/max-pods-calculator.sh
  2. Contrassegnare lo script come eseguibile sul computer.

    chmod +x max-pods-calculator.sh
  3. Esegui lo script, sostituendo m5.large con il tipo di istanza che desideri implementare e 1.9.0-eksbuild.1 con la tua versione del componente aggiuntivo CNI di Amazon VPC. Per determinare la versione del componente aggiuntivo, consultare le procedure di aggiornamento in Utilizzo del componente aggiuntivo Amazon VPC CNI plugin for Kubernetes di Amazon EKS.

    ./max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1

    Di seguito viene riportato un output di esempio:

    29

    Puoi aggiungere le seguenti opzioni allo script per visualizzare il numero massimo di Pods supportati quando si utilizzano funzionalità opzionali.

    • --cni-custom-networking-enabled: utilizzare questa opzione quando si desidera assegnare indirizzi IP da una sottorete diversa da quella della propria istanza. Per ulteriori informazioni, consulta Rete personalizzata per i pod. L'aggiunta di questa opzione allo script precedente, con gli stessi valori di esempio, produce 20.

    • --cni-prefix-delegation-enabled: utilizzare questa opzione quando si desidera assegnare un numero significativo di indirizzi IP a ciascuna interfaccia di rete elastica. Questa funzionalità richiede un'istanza Amazon Linux eseguita su Nitro System e la versione 1.9.0 o successiva del componente aggiuntivo CNI di Amazon VPC. Per ulteriori informazioni, consulta Aumentare la quantità di indirizzi IP disponibili per i nodi Amazon EC2. L'aggiunta di questa opzione allo script precedente, con gli stessi valori di esempio, produce 110.

È inoltre possibile eseguire lo script con l'opzione --help per visualizzare tutte le opzioni disponibili.

Nota

Lo script del calcolatore di Pods massimi limita il valore restituito a 110 in base alle soglie di scalabilità di Kubernetes e alle impostazioni consigliate. Se il tipo di istanza ha più di 30 vCPU, questo limite sale a 250, un numero basato sui test interni del team di scalabilità di Amazon EKS. Per ulteriori informazioni, consulta il post del blog dedicato all'aumento dei limiti dei pod per nodo del plug-in CNI di Amazon VPC.