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à.
Crea un pool di nodi per la modalità automatica di EKS
I pool di nodi Amazon EKS forniscono un modo flessibile per gestire le risorse di calcolo nel cluster Kubernetes. Questo argomento mostra come creare e configurare pool di nodi usando Karpenter, uno strumento di provisioning dei nodi che aiuta a ottimizzare il dimensionamento dei cluster e l’utilizzo delle risorse. Con la NodePool risorsa di Karpenter, puoi definire requisiti specifici per le tue risorse di calcolo, inclusi tipi di istanze, zone di disponibilità, architetture e tipi di capacità.
Non è possibile modificare il system integrato e i pool di nodi general-purpose. È solo possibile abilitarli o disabilitarli. Per ulteriori informazioni, consulta Attivazione o disattivazione della funzionalità integrata NodePools.
Le NodePool specifiche consentono un controllo granulare delle risorse di elaborazione del cluster EKS attraverso varie etichette e requisiti supportati. Queste includono opzioni per specificare le categorie di istanze EC2, le configurazioni della CPU, le zone di disponibilità, le architetture () e i tipi di capacità (spot o ARM64/AMD64 on-demand). È inoltre possibile impostare limiti di risorse per l’utilizzo della CPU e della memoria, garantendo che il cluster rimanga entro i limiti operativi richiesti.
La modalità automatica di EKS sfrutta le note etichette Kubernetes per offrire metodi coerenti e standardizzati di identificazione delle caratteristiche dei nodi. Queste etichette, come topology.kubernetes.io/zone per le zone di disponibilità e kubernetes.io/arch per l’architettura della CPU, seguono le convenzioni stabilite da Kubernetes. Inoltre, EKS-specific le etichette (con il prefissoeks.amazonaws.com/) estendono questa funzionalità con attributi AWS specifici come tipi di istanze, produttori di CPU, funzionalità GPU e specifiche di rete. Questo sistema di etichettatura standardizzato consente una perfetta integrazione con gli strumenti Kubernetes esistenti, fornendo al contempo una profonda integrazione dell'infrastruttura. AWS
Crea un NodePool
Segui questi passaggi per creare un NodePool cluster Amazon EKS:
-
Crea un file YAML denominato
nodepool.yamlcon la configurazione richiesta. NodePool Puoi utilizzare la configurazione di esempio seguente. -
Applicalo NodePool al tuo cluster:
kubectl apply -f nodepool.yaml -
Verifica che sia NodePool stato creato correttamente:
kubectl get nodepools -
(Facoltativo) Monitora lo NodePool stato:
kubectl describe nodepool default
Assicurati che i NodePool riferimenti NodeClass siano validi e presenti nel cluster. NodeClass Definisce AWS configurazioni specifiche per le tue risorse di calcolo. Per ulteriori informazioni, consulta Creazione di una classe di nodi per Amazon EKS.
Esempio NodePool
apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: my-node-pool spec: template: metadata: labels: billing-team: my-team spec: nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: default requirements: - key: "eks.amazonaws.com/instance-category" operator: In values: ["c", "m", "r"] - key: "eks.amazonaws.com/instance-cpu" operator: In values: ["4", "8", "16", "32"] - key: "topology.kubernetes.io/zone" operator: In values: ["us-west-2a", "us-west-2b"] - key: "kubernetes.io/arch" operator: In values: ["arm64", "amd64"] limits: cpu: "1000" memory: 1000Gi
Etichette supportate dalla modalità automatica di EKS
La modalità automatica di EKS supporta le seguenti etichette note.
Nota
La modalità automatica di EKS utilizza etichette diverse rispetto a Karpenter. Le etichette relative alle istanze gestite da EC2 iniziano con eks.amazonaws.com.
| Etichetta | Esempio | Description |
|---|---|---|
|
topologia.kubernetes. io/zone |
us-east-2a |
AWS regione |
|
nodo.kubernetes. io/instance-tipo |
g4dn.8xlarge |
AWS tipo di istanza |
|
kubernetes. io/arch |
amd64 |
Le architetture sono definite dai valori GOARCH |
|
falegname. sh/capacity-tipo |
spot |
I tipi di capacità includono |
|
es. amazonaws. com/instance-hypervisor |
nitro |
Tipi di istanze che usano un hypervisor specifico |
|
es. amazonaws. com/compute-tipo |
auto |
Identifica i nodi gestiti dalla modalità automatica di EKS |
|
es. amazonaws. com/instance-crittografia in transito supportata |
true |
Tipi di istanza che supportano (o non supportano) la crittografia in transito |
|
es. amazonaws. com/instance-categoria |
g |
Tipi di istanza della stessa categoria, in genere la stringa che precede il numero di generazione |
|
es. amazonaws. com/instance-generazione |
4 |
Numero di generazione del tipo di istanza in una categoria di istanza |
|
es. amazonaws. com/instance-famiglia |
g4dn |
Tipi di istanza con proprietà simili ma quantità di risorse differenti |
|
es. amazonaws. com/instance-taglia |
8xlarge |
Tipi di istanza con quantità di risorse simili ma proprietà differenti |
|
es. amazonaws. com/instance-cpu |
32 |
Numero di CPU sull’istanza |
|
es. amazonaws. com/instance-cpu-produttore |
|
Nome del produttore della CPU |
|
es. amazonaws. com/instance-memoria |
131072 |
Numero di mebibyte di memoria sull’istanza |
|
es. amazonaws. com/instance-ebs-larghezza di banda |
9500 |
Numero massimo di megabit di EBS disponibili sull’istanza |
|
es. amazonaws. com/instance-larghezza di banda di rete |
131072 |
Numero di megabit di base disponibili sull’istanza |
|
es. amazonaws. com/instance-nome-gpu |
t4 |
Nome della GPU nell’istanza, se disponibile |
|
es. amazonaws. com/instance-gpu-produttore |
nvidia |
Nome del produttore della GPU |
|
es. amazonaws. com/instance-gpu-count |
1 |
Numero di GPU nell’istanza |
|
es. amazonaws. com/instance-gpu-memoria |
16384 |
Numero di mebibyte di memoria sulla GPU |
|
es. amazonaws. com/instance-local-nvme |
900 |
Gibibyte di storage nvme locale nell’istanza |
Nota
La modalità automatica di EKS supporta solo certe istanze e prevede dei requisiti minimi di dimensione. Per ulteriori informazioni, consulta Riferimento all’istanza supportata dalla modalità automatica EKS.
Etichette non supportate dalla modalità automatica di EKS
La modalità automatica di EKS non supporta le seguenti etichette.
-
La modalità automatica di EKS supporta soltanto Linux
-
node.kubernetes.io/windows-build -
kubernetes.io/os
-
Disattivare i pool di nodi integrati
Se crei pool di nodi personalizzati, puoi disattivare i pool di nodi integrati. Per ulteriori informazioni, consulta Attivazione o disattivazione della funzionalità integrata NodePools.
Cluster senza pool di nodi integrati
Puoi creare un cluster senza pool di nodi integrati. È utile quando l’organizzazione ha creato pool di nodi personalizzati.
Nota
Quando si crea un cluster senza pool di nodi integrati, il provisioning non viene eseguito automaticamente. default NodeClass Dovrai crearne uno personalizzato NodeClass. Per ulteriori informazioni, consulta Creazione di una classe di nodi per Amazon EKS.
Panoramica:
-
Crea un cluster EKS con i valori
nodePoolsenodeRoleArnvuoti.-
Esempio eksctl
autoModeConfig:autoModeConfig: enabled: true nodePools: [] # Do not set a nodeRoleARNPer ulteriori informazioni, consulta Crea un cluster della modalità automatica di EKS con la CLI di eksctl
-
-
Crea una classe di nodi personalizzata con un ruolo del nodo ARN
-
Per ulteriori informazioni, consulta Creazione di una classe di nodi per Amazon EKS
-
-
Crea una voce di accesso per la classe di nodi personalizzata
-
Per ulteriori informazioni, consulta Creazione di una voce di accesso alla classe di nodi
-
-
Crea un pool di nodi personalizzato come descritto sopra.
Interruzione
Puoi configurare la modalità automatica EKS per interrompere i nodi tramite i tuoi NodePool in diversi modi. Puoi usare spec.disruption.consolidationPolicy, spec.disruption.consolidateAfter o spec.template.spec.expireAfter. Puoi anche limitare l'interruzione della modalità automatica EKS attraverso gli NodePool anni '80. spec.disruption.budgets Puoi inoltre controllare le finestre temporali e il numero di nodi simultanei interrotti. Per istruzioni sulla configurazione di questo comportamento, consulta la pagina Disruption
Puoi configurare l’interruzione per i pool di nodi per:
-
Identifica le istanze sottoutilizzate e consolida i carichi di lavoro.
-
Crea un budget per le interruzioni dei pool di nodi per limitare le interruzioni dei nodi causate da deviazioni, vuoto e consolidamento.
Per impostazione predefinita, la modalità automatica di EKS:
-
Consolida le istanze sottoutilizzate.
-
Termina le istanze dopo 336 ore.
-
Imposta un budget unico per le interruzioni pari al 10% dei nodi.
-
Permette la sostituzione dei nodi a causa della deriva quando viene rilasciata una nuova AMI in Auto Mode, cosa che avviene circa una volta alla settimana.
Periodo di tolleranza della terminazione
Quando a non terminationGracePeriod è definito in modo esplicito in una modalità automatica EKS NodePool, il sistema applica automaticamente un periodo di tolleranza di terminazione predefinito di 24 ore alla modalità associata. NodeClaim Sebbene i clienti di EKS Auto Mode non vedano un terminationGracePeriod valore predefinito nelle loro NodePool configurazioni personalizzate, osserveranno questo valore predefinito su. NodeClaim La funzionalità rimane coerente indipendentemente dal fatto che il periodo di prova sia impostato esplicitamente su NodePool o predefinito su NodeClaim, garantendo un comportamento prevedibile di terminazione dei nodi in tutto il cluster.