

 **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 su che si trova 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
<a name="create-node-pool"></a>

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 Built-in NodePools](set-builtin-node-pools.md).

Le NodePool specifiche consentono un controllo granulare sulle risorse di calcolo 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 (ARM64/AMD64) e i tipi di capacità (spot o 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 (precedute da`eks.amazonaws.com/`) estendono questa funzionalità con attributi AWS specifici come tipi di istanze, produttori di CPU, capacità della 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
<a name="_create_a_nodepool"></a>

Segui questi passaggi per creare un NodePool cluster Amazon EKS:

1. Crea un file YAML denominato `nodepool.yaml` con la configurazione richiesta. NodePool Puoi utilizzare la configurazione di esempio seguente.

1. Applicalo NodePool al tuo cluster:

   ```
   kubectl apply -f nodepool.yaml
   ```

1. Verifica che sia NodePool stato creato correttamente:

   ```
   kubectl get nodepools
   ```

1. (Facoltativo) Monitora lo NodePool stato:

   ```
   kubectl describe nodepool default
   ```

Assicurati che i tuoi NodePool riferimenti NodeClass siano validi e presenti nel tuo cluster. NodeClass Definisce configurazioni AWS specifiche per le tue risorse di calcolo. Per ulteriori informazioni, consulta [Creazione di una classe di nodi per Amazon EKS](create-node-class.md).

## Esempio NodePool
<a name="_sample_nodepool"></a>

```
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"]

  disruption:
    consolidationPolicy: Balanced
    consolidateAfter: 30s

  limits:
    cpu: "1000"
    memory: 1000Gi
```

## Etichette supportate dalla modalità automatica di EKS
<a name="auto-supported-labels"></a>

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](https://github.com/golang/go/blob/master/src/internal/syslist/syslist.go#L58) sull’istanza | 
| falegname. sh/capacity-tipo | spot | I tipi di capacità includono`spot`,`on-demand`, e`reserved`. Se non si specifica un tipo di capacità, Karpenter dà la priorità a, then`reserved`, then. `spot` `on-demand` | 
| eks.amazonaws. com/instance- hypervisor | nitro | Tipi di istanze che usano un hypervisor specifico | 
| ex.amazonaws. com/compute-tipo | auto | Identifica i nodi gestiti dalla modalità automatica di EKS | 
| eks.amazonaws. com/instance-supportata la crittografia in transito | true | Tipi di istanza che supportano (o non supportano) la crittografia in transito | 
| ex.amazonaws. com/instance-categoria | g | Tipi di istanza della stessa categoria, in genere la stringa che precede il numero di generazione | 
| eks.amazonaws. com/instance-generazione | 4 | Numero di generazione del tipo di istanza in una categoria di istanza | 
| eks.amazonaws. com/instance-famiglia | g4dn | Tipi di istanza con proprietà simili ma quantità di risorse differenti | 
| eks.amazonaws. com/instance-taglia | 8xlarge | Tipi di istanza con quantità di risorse simili ma proprietà differenti | 
| ex. amazonaws. com/instance-tazza | 32 | Numero di CPU sull’istanza | 
| ex.amazonaws. com/instance-produttore di CPU |  `aws`  | Nome del produttore della CPU | 
| es. amazonaws. com/instance-memoria | 131072 | Numero di mebibyte di memoria sull’istanza | 
| ex. amazonaws. com/instance-ebs-larghezza di banda | 9500 | Numero [massimo di megabit](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html#ebs-optimization-performance) di EBS disponibili sull’istanza | 
| ex. amazonaws. com/instance-larghezza di banda della rete | 131072 | Numero di [megabit di base](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) disponibili sull’istanza | 
| ex. amazonaws. com/instance-nome-gpu | t4 | Nome della GPU nell’istanza, se disponibile | 
| ex.amazonaws. com/instance-produttore di gpu | 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-nome-locale | 900 | Gibibyte di storage nvme locale nell’istanza | 
| ex.amazonaws. com/capacity-prenotazione-interrompibile | true | Se la prenotazione della capacità è interrompibile. Presente solo sui nodi con. `karpenter.sh/capacity-type: reserved` | 

**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](automode-learn-instances.md#auto-supported-instances).

## Etichette non supportate dalla modalità automatica di EKS
<a name="_eks_auto_mode_not_supported_labels"></a>

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
<a name="_disable_built_in_node_pools"></a>

Se crei pool di nodi personalizzati, puoi disattivare i pool di nodi integrati. Per ulteriori informazioni, consulta [Attivazione o disattivazione Built-in NodePools](set-builtin-node-pools.md).

## Cluster senza pool di nodi integrati
<a name="_cluster_without_built_in_node_pools"></a>

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 `default` NodeClass viene eseguito automaticamente. Dovrai crearne uno personalizzato NodeClass. Per ulteriori informazioni, consulta [Creazione di una classe di nodi per Amazon EKS](create-node-class.md).

 **Panoramica:** 

1. Crea un cluster EKS con entrambi `nodePools` i `nodeRoleArn` valori vuoti.
   + Esempio eksctl `autoModeConfig`:

     ```
     autoModeConfig:
       enabled: true
       nodePools: []
       # Do not set a nodeRoleARN
     ```

     Per ulteriori informazioni, consulta [Crea un cluster della modalità automatica di EKS con la CLI di eksctl](automode-get-started-eksctl.md) 

1. 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](create-node-class.md) 

1. 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](create-node-class.md#auto-node-access-entry) 

1. Crea un pool di nodi personalizzato come descritto sopra.

## Interruzione
<a name="_disruption"></a>

È possibile configurare EKS Auto Mode per interrompere i nodi NodePool in diversi modi. Puoi usare `spec.disruption.consolidationPolicy`, `spec.disruption.consolidateAfter` o `spec.template.spec.expireAfter`. È inoltre possibile limitare le interruzioni della modalità EKS Auto tramite gli NodePool». `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](https://karpenter.sh/docs/concepts/disruption/) nella documentazione di Karpenter.

Il `consolidationPolicy` campo accetta tre valori:
+  `WhenEmpty`— Consolida solo i nodi vuoti, in modo che i carichi di lavoro in esecuzione non vengano mai interrotti.
+  `WhenEmptyOrUnderutilized`— Si consolida in modo aggressivo in termini di costi, interrompendo i carichi di lavoro ogni volta che i pod di un nodo possono essere reimballati in modo più economico.
+  `Balanced`— Assegna un punteggio a ciascuna azione di consolidamento soppesando i costi legati alle interruzioni e i risparmi sui costi. Salta le azioni in cui l'interruzione supera i risparmi.

Per i dettagli su ciascun valore, consulta [ Disruption ](https://karpenter.sh/docs/concepts/disruption/) nella documentazione di Karpenter.

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
<a name="_termination_grace_period"></a>

Quando a non `terminationGracePeriod` è definito esplicitamente in una modalità EKS Auto NodePool, il sistema applica automaticamente un periodo di tolleranza di risoluzione predefinito di 24 ore al soggetto associato. 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 costante indipendentemente dal fatto che il periodo di tolleranza sia impostato esplicitamente su NodePool o predefinito su NodeClaim, garantendo un comportamento prevedibile di terminazione dei nodi in tutto il cluster.